我有一個列表數據如下:如何expand.grid特定對象列表中,形成一個新的列表
a<-list(10,c(8,9),5,14,c(3,7),c(2,3),5,13,c(3,4),4,5,8,12,c(2,3),c(5,7))
一個
[[3]]
[1] 5
[[4]]
[1] 14
[[5]]
[1] 3 7
[[6]]
[1] 2 3
[[7]]
[1] 5
[[8]]
[1] 13
[[9]]
[1] 3 4
[[10]]
[1] 4
[[11]]
[1] 5
[[12]]
[1] 8
[[13]]
[1] 12
[[14]]
[1] 2 3
[[ 15]]
[1] 5 7
然後,我想在列表a中的每3個對象中使用「expand.grid」。
也就是說,分別擴展1,2,3,4,6,7-9,10-12,13-15,然後將這些結果組合到一個新的列表中。
結果應該像下面的樣子。
我只是用foolishest的方式來解決這個問題:list(expand.grid(a[1:3]),expand.grid(a[4:6]),expand.grid(a[7:9]),expand.grid(a[10:12]),expand.grid(a[13:15]))
當我嘗試使用 「sapply」:sapply(1:(length(a)/3), function(x){expand.grid(a[1:3+3*x-3])})
它沒有工作,結果如下:
我不知道爲什麼,你能幫我解決這個問題,非常感謝你!
如果你的列表是三的倍數......'lapply(as.data.frame(matrix(a,3)),expand.grid)' – user20650