1

我从一个包含三列的数据框开始。第 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 函数(表、应用等),但无法处理跨列的依赖关系。

提前感谢您提供的任何帮助,使我更接近第二个/“组合”数据框。

4

1 回答 1

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
于 2013-06-04T17:44:20.687 回答