【发布时间】:2013-06-04 17:40:23
【问题描述】:
我从一个包含三列的数据框开始。 第 1 列包含指示 3 个不同时间段的 ID,其中某些人(第 2 列)的体重(第 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
实际上,这里的整个事情只是一个简化的例子。如果这种数据收集没有意义,请不要打扰。
现在,我想计算一段时间内每个人的平均(平均)体重,然后 最终得到一个如下所示的组合数据框:
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 函数(table、apply 等),但无法处理列之间的依赖关系。
提前感谢任何帮助,使我更接近第二个/“组合”数据框。
【问题讨论】:
-
我认为一些词汇在这里会有所帮助。您的第一个数据集,其中每个测量 是一个单独的记录,称为
long格式数据。有两种对应的wide格式:一种为每个组(您想要的)一行,另一种为每个人一行。长宽格式切换一般称为reshaping;我们将melt宽数据转换为长数据,将cast长数据转换为宽数据。这些是强大的概念,reshape2是它们的一个很好的实现——让生活变得如此轻松。非常值得花时间学习。 -
“值得花时间学习”。 Joran 的解决方案批准了您的建议。
标签: r