循环并修改列表元素

时间:2016-08-18 17:57:28

标签: r

我正在尝试修改列表列表中的命名元素,如下所示:

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的建议方法是什么?

1 个答案:

答案 0 :(得分:6)

您的代码没有按照您的想法行事。在这种情况下:

for (e in A) {
    e$a <- 10
}

这不起作用,因为临时变量e是一个新的独立对象,而不是A中对应元素的引用。

实现目标的快捷方法是:

for (i in 1:length(A)) {
    A[[i]]$a <- 10
}