尝试做这个简单的循环:
#a,b,c,d and e are datasets i want to normalizelist <- list(a,b,c,d,e) for(i in list) { i <- Normalize(i) }
#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,但在这里我找不到如何正确调用它。
qjp7pelc1#
这里的问题是,您将每个数据集复制到i变量,并在每次循环迭代时修改该变量,而不编辑初始列表。在循环结束时,你只得到最后一个i值。你需要使用counter来访问列表中的元素,在for循环中使用这个counter,如下所示:
i
for
for(i in 1:length(list)){ list[[i]] <- Normalize(list[[i]])}
for(i in 1:length(list)){
list[[i]] <- Normalize(list[[i]])
}
tvz2xvvm2#
您可以使用lapply函数来规范化数据集列表,而不是循环。循环通常在R中效率较低。
lapply
list_of_datasets <- list(a, b, c, d, e)list_of_datasets_normalized <- lapply(list_of_datasets, Normalize)
list_of_datasets <- list(a, b, c, d, e)
list_of_datasets_normalized <- lapply(list_of_datasets, Normalize)
2条答案
按热度按时间qjp7pelc1#
这里的问题是,您将每个数据集复制到
i
变量,并在每次循环迭代时修改该变量,而不编辑初始列表。在循环结束时,你只得到最后一个i
值。你需要使用counter来访问列表中的元素,在
for
循环中使用这个counter,如下所示:tvz2xvvm2#
您可以使用
lapply
函数来规范化数据集列表,而不是循环。循环通常在R中效率较低。