无法在简单R循环中调用变量

c9qzyr3d  于 2023-10-13  发布在  其他
关注(0)|答案(2)|浏览(121)

尝试做这个简单的循环:

#a,b,c,d and e are datasets i want to normalize
list <- list(a,b,c,d,e)
     
    for(i in list) { 
        i <- Normalize(i) }

我希望我的数据集a、B、c、d和e能够被标准化,但是,“i <-”最终没有被读取为列表中的一个事件,而是创建了一个名为“i”的数据集,其中包含列表中的最后一个事件。对于bash,我通常将变量称为$i,但在这里我找不到如何正确调用它。

qjp7pelc

qjp7pelc1#

这里的问题是,您将每个数据集复制到i变量,并在每次循环迭代时修改该变量,而不编辑初始列表。在循环结束时,你只得到最后一个i值。
你需要使用counter来访问列表中的元素,在for循环中使用这个counter,如下所示:

for(i in 1:length(list)){
    list[[i]] <- Normalize(list[[i]])
}
tvz2xvvm

tvz2xvvm2#

您可以使用lapply函数来规范化数据集列表,而不是循环。循环通常在R中效率较低。

list_of_datasets <- list(a, b, c, d, e)
list_of_datasets_normalized <- lapply(list_of_datasets, Normalize)

相关问题