R重新排列主题内的数据帧

时间:2010-09-20 16:13:33

标签: r reshape reshape2

我有一个大型数据集,可以跨主题重复评估。我该怎么做:

subj, assessment, test1, test2  
A,    1,          10,    20  
A,    2,          12,    13  
A,    3,          11,    12  
B,    1,          14,    14  
B,    2,          13,    12

要:

subj, test1_1, test1_2, test1_3  
A,    10,      12,      11  
B,    14,      13  

谢谢,

乔恩

2 个答案:

答案 0 :(得分:2)

您可以使用hadley优秀的reshape / reshape2软件包轻松完成此任务。这是带你到你需要的代码

library(reshape); 
df = melt(df, id = c('subj', 'assessment'));
df = cast(df, subj ~ variable + assessment);

请告诉我这是否适合您。

答案 1 :(得分:2)

重塑功能(统计数据)相当容易实现:

reshape(data, timevar='assessment', idvar='subj', dir='wide')

或者只是获取test1的结果:

reshape(subset(data, select=-test2), timevar='assessment', idvar='subj', dir='wide')