Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R_将原始数据转换为列数据_R_Transform - Fatal编程技术网

R_将原始数据转换为列数据

R_将原始数据转换为列数据,r,transform,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<-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

我有一个数据帧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<-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
>df1 df1
a b c a.1 b.1 c.1 a.2 b.2 c.2
1 a 1 b 2 b c 3 c
但结果是行矩阵,在现实中,我有数百列和行,它们应该转换为一列。我怎么做

> 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.vector
as.matrix
也将代替上面的
apply
调用中的
c

这里还有另外两个选择

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

as.vector
as.matrix
也将在上面的
apply
调用中替代
c

使用
t(df)
而不是
apply(df,1,c)
,速度稍微快一些。我想知道是否使用
数据。table
会更快一些。。。类似于
库(data.table);data.frame(a=matrix(data.table(df)[,t(.SD)],ncol=1))
您应该在大数据集上对其进行基准测试谢谢@Richard Scriven和@shadow。这两个函数都很好。@richardscriven在
中被
c
调用的函数如何应用(df,1,c)
工作?它连接了一个向量。你也可以用
as.vector
as.matrix
代替
apply(df,1,c)
,用
t(df)
稍微快一点。我不知道用
data.table
会不会快一点。。。类似于
库(data.table);data.frame(a=matrix(data.table(df)[,t(.SD)],ncol=1))
您应该在大数据集上对其进行基准测试谢谢@Richard Scriven和@shadow。这两个函数都很好。@richardscriven在
中被
c
调用的函数如何应用(df,1,c)
工作?它连接了一个向量。您也可以在那里使用
as.vector
as.matrix