1
我有以下類型的AA數據幀:擴展/擴大與各列表的列數據幀分成行
df <- data.frame("col1" = c(1,2,3,4))
df$col2 <- list(list(1,1,1),list(2,2,2),list(3,3,3),list(4,4,4))
df$col3 <- list(c(1,1,1),c(2,2,2),c(3,3,3),c(4,4,4))
df
而獲得:
col1 col2 col3
1 1 1, 1, 1 1, 1, 1
2 2 2, 2, 2 2, 2, 2
3 3 3, 3, 3 3, 3, 3
4 4 4, 4, 4 4, 4, 4
現在我想操縱這個數據幀得到像這樣的東西:
col1 col3
1 1 1
1 1
1 1
2 2 2
2 2
2 2
3 3 3
3 3
3 3
...
現在我可以用一個簡單的循環做到這一點。對於每一行我將列表轉換爲數據框。然後,我使用rbind
將數據幀附加到單個數據幀中。
我的問題是:我該如何做矢量化函數?
我試過apply
,sapply
,mapply
和Reduce
但沒有成功。 apply
是唯一實際執行但產生不正確結果(只有每個列表的第一個元素)。
我們可以試着'LST < - lapply(DF [-1],不公開)'然後使用'data.frame(lst)' – akrun
我建議避免創建一個data.frame列表列以開始。 – Roland
@akrun你的建議似乎有效。想要添加該答案作爲答案,以便我可以將其標記爲正確?謝謝。 – user2051561