R_transforming原始数据到列数据

时间:2014-04-25 09:33:22

标签: r transform

我有一个数据框df

 > df<-data.frame(a=letters[1:5], b=1:5, c=LETTERS[1:5])
 > df
   a  b c
1  a  1 A
2  b  2 B
3  c  3 C
4  d  4 D
5  e  5 E

我想从上面的数据框创建一个新的数据框,只有列应该是这样的

> df1
   a
1  a
2  1
3  A
4  b
5  2
6  B
7  c
8  3
9  C
.....

我尝试了以下

> df1<-data.frame(c(df[1,],df[2,],df[3,]))
> df1
  a b c a.1 b.1 c.1 a.2 b.2 c.2
1 a 1 A   b   2   B   c   3   C

但结果是行矩阵,实际上我有数百个列和行应该转换为一列。我该怎么办?

1 个答案:

答案 0 :(得分:5)

> data.frame(a = matrix(apply(df, 1, c), ncol = 1))
##    a
## 1  a
## 2  1
## 3  A
## 4  b
## 5  2
## 6  B
## 7  c
## 8  3
## 9  C
## 10 d
## 11 4
## 12 D
## 13 e
## 14 5
## 15 E

以下是另外两个选项,

> data.frame(a = do.call(rbind, as.list(t(df))))
## or
> data.frame(a = c(apply(df, 1, c)))

as.vectoras.matrix也可以代替上面c来电中的apply