我有數字輸入一個數據幀像這樣的轉換一個數據幀的載體(行)
test <- data.frame(x=c(26,21,20),y=c(34,29,28))
我怎樣可以得到下面的載體?
> 26,34,21,29,20,28
我可以使用下面的得到它,但我想應該有一個更優雅的方式
X <- test[1,]
for (i in 2:dim(test)[1]){
X <- cbind(X,test[i,])
}
我有數字輸入一個數據幀像這樣的轉換一個數據幀的載體(行)
test <- data.frame(x=c(26,21,20),y=c(34,29,28))
我怎樣可以得到下面的載體?
> 26,34,21,29,20,28
我可以使用下面的得到它,但我想應該有一個更優雅的方式
X <- test[1,]
for (i in 2:dim(test)[1]){
X <- cbind(X,test[i,])
}
您可以嘗試as.vector(t(test))
。請注意,如果您想要按列操作,請使用unlist(test)
。
c(df$x, df$y)
# returns: 26 21 20 34 29 28
如果特定的順序很重要,那麼:
M = as.matrix(df)
c(m[1,], c[2,], c[3,])
# returns 26 34 21 29 20 28
或更一般地說:
m = as.matrix(df)
q = c()
for (i in seq(1:nrow(m))){
q = c(q, m[i,])
}
# returns 26 34 21 29 20 28
'c(t(test))'也可以。 – Marek 2010-03-31 08:09:44
我無法理解此解決方法。可以給出更多的解釋嗎? @teucer – verystrongjoe 2016-08-30 10:21:32
@verystrongjoe這裏有兩件事情要做:1)t隱式地將data.frame轉換爲矩陣,2)矩陣只是一個特殊的帶dim屬性的向量,as.vector或c將它移除它 – teucer 2016-08-31 02:25:07