plyr
を使用する利点は、リスト名が保持されることですllply
。lapply
説明についてはを参照?llply
してください。私はその機能が大好きですが、ネストされたリストの場合は機能しないようです。例:
library(plyr)
m <- as.list(1:2)
names(m) <- c('M1', 'M2')
foo <- list(m, m)
names(foo) <- paste0("R", 1:2)
result <- ldply(foo, function(x){
ldply(x, function(z) { data.frame(a=z, b= z^2)})
})
> result
.id a b
1 M1 1 1
2 M2 2 4
3 M1 1 1
4 M2 2 4
# if I don't operate on the inner list, I can preserve the outer list's names
result2 <- ldply(foo, function(x){
data.frame(a = x[[1]], b = x[[1]]^2)
})
> result2
.id a b
1 R1 1 1
2 R2 1 1
にはandresult
が含まれていないことに注意してください(これは、の場合のように、の各要素内のネストされたリストを操作しなかったかのように追加されます)。ネストされたリストで作業しているときに、外部リスト名が追加されていることを確認するにはどうすればよいですか?R1
R2
.id
foo
result2