我想在一個函數中創建一個boucle來創建一個可變數量的列的data.frame。如何使用未知數量的列創建data.frame?
的東西,如:
a = c("a","b")
b = c(list(1,2,3), list(4,5,6))
data.frame(a,b)
我想獲得一個數據幀,如:
a 1 2 3
b 4 5 6
代替我獲得:
a 1 2 3 4 5 6
b 1 2 3 4 5 6
謝謝!
PS:我也嘗試用rbind,但它不工作...
我想在一個函數中創建一個boucle來創建一個可變數量的列的data.frame。如何使用未知數量的列創建data.frame?
的東西,如:
a = c("a","b")
b = c(list(1,2,3), list(4,5,6))
data.frame(a,b)
我想獲得一個數據幀,如:
a 1 2 3
b 4 5 6
代替我獲得:
a 1 2 3 4 5 6
b 1 2 3 4 5 6
謝謝!
PS:我也嘗試用rbind,但它不工作...
你有B中的2只列出了持有不同的變量?
如果是這樣你可以使用:
x<-data.frame(rbind(b1,b2))
rownames(x)<-a
有很多方法可以做到這種事情。你的第一個問題是你的「b」對象不是矩陣。您需要將其定義爲具有行和列的模式(或使用rbind)。
您可以創建數據框然後合併它們(這比開始使用矩陣要好,因爲它會將每個對象類型保持爲數字或字符等,而矩陣會丟失):
x1 <- data.frame(X=c("a","b"))
x2 <- data.frame(rbind(c(1,2,3), c(4,5,6)))
data.frame(x1, x2)
X X1 X2 X3
1 a 1 2 3
2 b 4 5 6
如果X1是rownames,那麼你就應該按照詹姆斯的例子:
x2 <- data.frame(rbind(c(1,2,3), c(4,5,6)))
rownames(x2) <- c("a","b")
另一種方式
a = c("a","b")
b = list(c(1,2,3), c(4,5,6))
library(plyr)
df <- ldply(b)
rownames(df) <- a
非常感謝! 讀你的迴應之前,我嘗試另一種方法使用:
for (x in niveaux) {
assign(x,pi)
assign(paste(x,"moy"),"moy")
}
# Que j'utilise ensuite avec qq chose du genre :
assign(x,append(get(x),1))
但它更復雜!
奧利弗
PS: 'A' 可以是rowname或一列,目的是data.frame導出爲CSV文件。
'a'是否表示列名或行名? – Shane 2010-04-01 13:51:48