【发布时间】:2015-05-07 19:41:44
【问题描述】:
假设我有一个清单:
mylist=list(list(data.frame(a=3,b=2,c=4),data.frame(d=5,e=6,h=8),data.frame(k=2,e=3,b=5,m=5)),
list(data.frame(a=32,b=22,c=42),data.frame(d=5,e=63,h=82),data.frame(k=2,e=33,b=5,m=5)),
list(data.frame(a=33,b=21,k=41,c=41),data.frame(d=5,e=61,h=80),data.frame(k=22,e=3,b=5,m=5)))
然后我尝试通过cbind列表的每个元素获取一个新列表,例如 cbind mylist[[1]][[1]]withmylist[[2]][[1]]andmylist[[3]][[1]]
功能:
newlist=lapply(seq_along(mylist[[1]]), function(x){
newlist=Reduce("cbind",c(mylist[[1]][x],mylist[[-1]][x]))
return(newlist)
})
I get:
Error in mylist[[-1]] : attempt to select more than one element
但是如果列表只有:
mylistshort=mylist[-3]
想要的结果是:
[[1]]
a b c a b c a b k c
1 3 2 4 32 22 42 33 21 41 41
[[2]]
d e h d e h d e h
1 5 6 8 5 63 82 5 61 80
[[3]]
k e b m k e b m k e m
1 2 3 5 5 2 33 5 5 22 3 5
那么如何减少长度大于 2 的列表? 最好的问候
【问题讨论】: