我有一個這樣的名單:轉換列表以一行data.frame
arg0 <- list(code = "a", n = rep(10, 3))
對象列表中的數目是可變的。列表中的對象是矢量 - 只有一維對象。
我想打一個過程將列表轉換成一排data.frame這樣的:
> data.frame(code = "a", n.1 = 10, n.2 = 10, n.3 = 10)
code n.1 n.2 n.3
1 a 10 10 10
我目前這個解決方案:
a <- stack(arg0)
b <- data.frame(t(a[,1]))
names(b) <- a[,2]
b <- data.frame(b)
哪裏b
幾乎是結果我想實現:
> b
code n n.1 n.2
1 a 10 10 10
兩個問題:
- 有沒有更優雅的方法來實現結果?
- 你有什麼想法如何獲得重複的姓名的編號,如
c(n.1, n.2, n.3)
?
由於保留了數據類型而被接受 - 額外的功能我沒有問在問題中,但我正在考慮這個問題。令我吃驚的是,對象的命名是如何在R中組織的。在這兩個例子中,不同的行名被分配給相同的結果:'foo < - function(x)t(data.frame(x)); foo(arg0 [[1]])和't(data.frame(arg0 [[1]]))'。也不知道'lapply'保存了參數列表中的對象名稱。謝謝你的教育答案! – djhurio