循环并修改列表元素

mgc*_*nny 2 r

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

A <- list(list(a=1,b=1),list(a=2,b=2))
A[[1]]$a == 1
Run Code Online (Sandbox Code Playgroud)

尝试修改元素:

for(e in A) e$a <- 10
Run Code Online (Sandbox Code Playgroud)

为什么这仍然适用?

A[[1]]$a == 1
Run Code Online (Sandbox Code Playgroud)

而不是这个:

A[[1]]$a == 10
Run Code Online (Sandbox Code Playgroud)

另外,实际分配10给每个.$a元素的建议方法是什么?

jdo*_*res 8

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

for (e in A) {
    e$a <- 10
}
Run Code Online (Sandbox Code Playgroud)

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

快速实现目标的方法是:

for (i in 1:length(A)) {
    A[[i]]$a <- 10
}
Run Code Online (Sandbox Code Playgroud)