【发布时间】:2011-04-12 00:28:37
【问题描述】:
我在 R 中有很多变量,都是列表类型
a100 = list()
a200 = list()
# ...
p700 = list()
每个变量都是一个复杂的数据结构:
a200$time$data # returns 1000 x 1000 matrix
现在,我想依次将代码应用于每个变量。但是,由于 R 不支持按引用传递,我不确定该怎么做。
我的一个想法是创建一个包含所有这些列表的大列表,即,
biglist = list()
biglist[[1]] = a100
...
然后我可以遍历 biglist:
for (i in 1:length(biglist)){
biglist[[i]]$newstuff = "profit"
# more code here
}
最后,在循环之后,返回以使现有代码(使用变量名)仍然有效:
a100 = biglist[[1]]
# ...
问题是:有没有更好的方法来迭代一组命名列表?我有一种感觉,我做错了可怕的事情。有没有更简单的,比如:
# FAKE, Idealized code:
foreach x in (a100, a200, ....){
x$newstuff = "profit"
}
a100$newstuff # "profit"
【问题讨论】: