【问题标题】:how to sum rows based on a unique identifier如何根据唯一标识符对行求和
【发布时间】:2016-04-29 03:24:06
【问题描述】:

我有一个大型数据框(超过 300 万行,14 列),显示一年中 346 个独特纬度和经度的每日每小时温度

JULDAY, D0cm, D2.5cm, ....
1       .84   .76
1       .83   .78
2       .20   .23
2       .19   .19
...
365     .026  .076
365     .025  .053

JULDAY 是 365 天,分为 24 小时(例如,每行 1 小时,每天 24 行)和根据深度相应的温度值

我认为这里应该有一个简单的解决方案,但似乎无法弄清楚。

基本上我想对 JULDAY 中的所有 365 个唯一值每天在 D0cmD2.5 等中的 24 个值求和 这应该给我 365 个值,即每天 24 小时值的总和

是创建for循环的情况吗? 我相信有人可以为我指明正确的方向

对不起,如果我没有很好地解释自己,但我很累......

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    我们可以使用dplyr

    library(dplyr)
    df1 %>%
       group_by(JULDAY) %>%
       summarise_each(funs(sum = sum(., na.rm=TRUE)))
    

    data.table

    library(data.table)
    setDT(df1)[, lapply(.SD, sum, na.rm=TRUE), by = JULDAY]
    

    【讨论】:

    • 非常感谢,我一直在使用library(dplyr)soiltemps %>% group_by(JULDAY) %>% summarise_each(SumD0cm = sum(D0cm), SumD2.5cm = sum(D2.5cm)),,但第二个 data.table 效果更好。新答案很简单
    猜你喜欢
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2016-01-16
    • 2010-10-19
    相关资源
    最近更新 更多