将行作为单个列放在r中

时间:2013-09-18 13:34:49

标签: r reshape

我有以下data.frame x

a d g
b e h
c f i

注意:以字母为例。实际的data.frame有数字代替字母(实际数据不按升序排列,如本例所示)

我希望通过在第一列中放置2到4列来将其转换为唯一列。预期结果如下

a
b
c
d
e
f
g
h
i

我尝试了以下代码

(t(x), ncol=1, nrow=ncol(x)*nrow(x), byrow=F)

但它(显然)给出了以下

a
d 
g
b
e
h
c
f
i

2 个答案:

答案 0 :(得分:6)

这样的东西?

X <- matrix(letters[1:9], ncol=3)
matrix(X, ncol=1)

R矩阵位于column major order,因此您可以使用matrix函数轻松将它们连接成一个列向量。

答案 1 :(得分:2)

我发现stack也很有用

X <- data.frame(matrix(letters[1:9], ncol=3),stringsAsFactors=FALSE)
stack(X)[,"values",drop=FALSE]