我有一個記錄列表:是否可以修改列表元素?
z <- list(list(a=1),list(a=4),list(a=2))
,我嘗試將字段添加到他們每個人。 唉,既不
lapply(z,function(l) l$b <- 1+l$a)
也不
for(l in z) l$b <- 1+l$a
修改z
。
在這個簡單的情況下,我當然可以,做
z <- lapply(z,function(l) c(list(b= 1+l$a),l))
但很快失控,當名單有更多的嵌套:
z <- list(list(a=list(b=1)),list(a=list(b=4)),list(a=list(b=2)))
我如何把它變成
list(list(a=list(b=1,c=2)),list(a=list(b=4,c=5)),list(a=list(b=2,c=3)))
沒有重複整個結構的定義? z
的每個元素都有很多字段,而不僅僅是a
;和z[[10]]$a
有許多子字段,而不僅僅是b
。
實際上,你不需要嵌套'lapply'; 'lapply(z,function(l){l $ a $ c < - l $ a $ b + 3; l})'工作得很好! – sds