首页 文章

如何对R中的数据帧进行“子集合”

提问于
浏览
0

快问 .

这是我的数据集的采样器:

name  date size
999321   -5   20
999321   -5   40
999321   59   50
999321   59   50
999322   -5   32
999322   -5   45
999322   -5   20
999322   66   13
999322   66   24
999322   66   14
999322  101   24
999322  101   23
999322  101   15

所以 . 我希望根据它们所属的 date 按照这些尺寸的总和进行分组,然后按照它们所属的 name 进行分组 . 基本上我希望我的数据帧变成这样:

name    date  size
999321   -5   80 {20+60)
999321   59   100 {50+50}
999322   -5   97 {32+45+20)
999322   66   51 {13+24+14}
999322  101   62 {24+23+15}

我想制作一个循环函数,根据 date 汇总 size 值,直到观察结果用完为止,但问题是每个主题的观察数量变化很大(如您所见,主题999321有4个观察结果) (每个 date 值为2),但999322有9个观察值,这发生在我的数据集的整个样本中(共有来自322个受试者的4879个观察结果) .

那么,我该怎么做呢?

谢谢

2 回答

  • 0

    要么

    > aggregate(size ~ name + date, data=d, FUN="sum")
        name date size
    1 999321   -5   60
    2 999322   -5   97
    3 999321   59  100
    4 999322   66   51
    5 999322  101   62
    
  • 1

    尝试使用 data.table 包:

    df[, list(sum(size)), by=list(name,date)]
    

    或者您可以使用 sqldf 包:

    sqldf("select name, date, sum(size) as size from DF group by name, date")
    
    
    
    name date size
    1 999321   -5   60
    2 999321   59  100
    3 999322   -5   97
    4 999322   66   51
    5 999322  101   62
    

相关问题