我试图修改列表列表中的命名元素,如下所示:
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元素的建议方法是什么?
您的代码没有按照您的想法执行.在这种情况下:
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)