簡體   English   中英

如何根據日期正確求和變量並將結果保存在 R 中的單獨數據框中

[英]How properly sum variable according to date and save result in a separate data frame in R

我有數據

bywells <-
structure(list(Well_N = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L), .Label = c("KRT3", "KRT4"), class = "factor"), Date_m = structure(c(16251, 
16281, 16312, 16343, 16373, 16312, 16343, 16373, 16404), class = "Date"), 
    QOM = c(132, 36, 39, 211, 45, 108, 161, 30, 31
    )), class = "data.frame", row.names = c(NA, -9L), .Names = c("Well_N", 
"Date_m", "QOM"))

並希望每月對變量 QOM 求和並得到類似的結果

       Date_m QOM
1  2014-06-30 132
2  2014-07-30  36
3  2014-08-30 147
4  2014-09-30 372
6  2014-10-30  75
7  2014-11-30  31

提取唯一日期並根據日期獲取 QOM 總和的正確程序是什么?

編輯:謝謝,伙計們。 其實這兩個答案都是完美的,但我標記為接受了一個點數較少的增加業力的答案。 再次感謝。

方法有很多種, dplyr包是一種選擇:

library(dplyr)
bywells %>% group_by(Date_m) %>% summarize(QOM = sum(QOM))

使用數據data.table

library(data.table)
setDT(bywells)[, list(QOM=sum(QOM)), by=Date_m]
#       Date_m QOM
#1: 2014-06-30 132
#2: 2014-07-30  36
#3: 2014-08-30 147
#4: 2014-09-30 372
#5: 2014-10-30  75
#6: 2014-11-30  31

或者使用來自base R aggregate

aggregate(QOM~Date_m, bywells, sum)

使用plyr

library(plyr)
summarize(group_by(bywells, Date_m),QOM=sum(QOM))

或基礎tapply

tapply(bywells$QOM, bywells$Date_m, sum)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM