将多个列转置为R中的行

时间:2016-03-05 21:47:55

标签: r transpose

我有一个数据集如下,其中每个ID有不同属性的多行。

 ID<-c(1,1, 2,2,3,3)
 Score<-c(4,5, 5,7,8,9)
 Attribute<-c("Att_1","Att_2", "Att_1","Att_2",   "Att_1","Att_2")
T<-data.frame(ID, Score, Attribute) 

需要将其转换为以下格式,以便每个ID都有一行:

 ID  Att_1   Att_2
 1    4        5
 2    5        7
 3    8        9

有关如何在excel中执行此操作的线程,只是想知道在R中有任何简洁的方法吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

可以使用reshape()

完成此操作
reshape(data.frame(ID,Score,Attribute),idvar='ID',timevar='Attribute',dir='w');
##   ID Score.Att_1 Score.Att_2
## 1  1           4           5
## 3  2           5           7
## 5  3           8           9

答案 1 :(得分:1)

你可以试试这个:

library(reshape2)
dcast(T, ID ~ Attribute, value.var="Score")
#  ID Att_1 Att_2
#1  1     4     5
#2  2     5     7
#3  3     8     9