我正在尝试修改列表列表中的命名元素,如下所示:
A <- list(list(a=1,b=1),list(a=2,b=2))
A[[1]]$a == 1
尝试修改元素:
for(e in A) e$a <- 10
为什么这仍然适用?
A[[1]]$a == 1
而不是这个:
A[[1]]$a == 10
此外,为每个10
元素实际分配.$a
的建议方法是什么?
答案 0 :(得分:6)
您的代码没有按照您的想法行事。在这种情况下:
for (e in A) {
e$a <- 10
}
这不起作用,因为临时变量e
是一个新的独立对象,而不是A
中对应元素的引用。
实现目标的快捷方法是:
for (i in 1:length(A)) {
A[[i]]$a <- 10
}