我从一个由三列组成的数据框开始。 第1列包含ID,表示某些人(第2列)的重量(第3列)以千克为单位测量时的3个不同时间段。
所有人都被不定期地测量,这意味着,有些人在一段时间内被测量多次或仅被测量一次,但在所有时间段内都没有。
id person_name person_weight
1 Carol 51
1 Mike 76
1 Mike 81
1 Dave 66
1 Carol 59
2 James 78
2 Simone 55
2 Simone 49
2 David 85
3 Mike 93
3 Dave 110
3 Dave 98
实际上,这里的全部内容只是一个简化的例子..所以如果这种数据集合毫无意义,请不要理会。 p>
现在,我想计算一个时间段内每个人的平均(平均)体重 最终得到一个如下所示的组合数据框:
group_id Carol Mike Dave James Simone David
1 55 78.5 66 NA NA NA
2 NA NA NA 78 52 85
3 NA 93 104 NA NA NA
我尝试了一些基本的R函数(表,应用等),但无法处理列中的依赖。
提前感谢任何帮助我更接近第二个/'组合'数据帧的帮助。
答案 0 :(得分:5)
看起来像一个简单的dcast
:
library(reshape2)
dcast(dat,id ~person_name,
fun.aggregate = mean,
value.var = "person_weight",fill = NA_real_)
id Carol Dave David James Mike Simone
1 1 55 66 NA NA 78.5 NA
2 2 NA NA 85 78 NA 52
3 3 NA 104 NA NA 93.0 NA