R 在主题内重新排序数据框

发布于 2024-09-24 08:10:18 字数 384 浏览 3 评论 0原文

我有一个大型数据集,可以跨学科进行重复评估。我如何从:

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  

谢谢,

乔恩

I have a large dataset with repeat assessment across subjects. How do I go from:

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

To:

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

Thanks,

Jon

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱给你人给你 2024-10-01 08:10:18

reshape 函数(在 stats 中)相当容易地完成此操作:

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

或者只是获取 test1 的结果:

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

The reshape function (in stats) does this fairly easily:

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

Or to just get the results for test1:

reshape(subset(data, select=-test2), timevar='assessment', idvar='subj', dir='wide')
念三年u 2024-10-01 08:10:18

您可以使用 hadley 出色的 reshape/reshape2 包轻松完成此任务。这是带您找到所需内容的代码,

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

请告诉我这是否适合您。

you can easily accomplish this using the excellent reshape/ reshape2 package by hadley. here is the code to take you to what you need

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

let me know if this works for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文