【发布时间】:2018-01-13 11:44:36
【问题描述】:
那么让我们来看看下面的data.table。它有日期和一列数字。我想获取每个日期的星期,然后汇总(总和)每两周。
Date <- as.Date(c("1980-01-01", "1980-01-02", "1981-01-05", "1981-01-05", "1982-01-08", "1982-01-15", "1980-01-16", "1980-01-17",
"1981-01-18", "1981-01-22", "1982-01-24", "1982-01-26"))
Runoff <- c(2, 1, 0.1, 3, 2, 5, 1.5, 0.5, 0.3, 2, 1.5, 4)
DT <- data.table(Date, Runoff)
DT
所以从日期,我可以很容易地得到年份和星期。
DT[,c("Date_YrWeek") := paste(substr(Date,1,4), week(Date), sep="-")][]
我正在苦苦挣扎的是每两周汇总一次。 我以为我会得到每周的第一个日期并使用这些值进行过滤。不幸的是,那太愚蠢了。
DT[,.(min(Date)),by=.(Date_YrWeek)][order(Date)]
最终结果将是每两周的总和。
weeks sum_value
1 and 2 ...
3 and 4 ...
5 and 6 ...
任何人都有使用 data.table 的有效方法吗?
【问题讨论】:
标签: r data.table