将数据框转换为vector(按行)
我有一个像这样的数字条目的数据框
test <- data.frame(x=c(26,21,20),y=c(34,29,28))
我怎样才能得到以下vector?
> 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