R如何根据日期将data.table切片到列表中

时间:2017-11-25 19:43:51

标签: r data.table

我有像这样的data.table

Date          Rain      Temp
1990-01-01    0.0       29.2
1990-03-03    0.0       30.4
1990-06-10    NA        25.2 
1990-09-02    0.3       26.8
1991-01-04    0.1       31.2
1991-03-02    0.0       34.0
1991-06-01    5.4       27.1 
1991-09-01    0.4       25.1
1992-01-09    0.0       30.8
1992-03-03    0.0       30.7
1992-06-03    4.6       23.1
1992-09-03    0.8       29.1

但是更大,更多的线条,有时几年有不同的行数。我需要在每年更改时将其切片并将结果保存到列表中:

[[1]]
    Date          Rain      Temp
    1990-01-01    0.0       29.2
    1990-03-03    0.0       30.4
    1990-06-10    NA        25.2 
    1990-09-02    0.3       26.8
[[2]]
    Date          Rain      Temp
    1991-01-04    0.1       31.2
    1991-03-02    0.0       34.0
    1991-06-01    5.4       27.1 
    1991-09-01    0.4       25.1
[[3]]
    Date          Rain      Temp
    1992-01-09    0.0       30.8
    1992-03-03    0.0       30.7
    1992-06-03    4.6       23.1
    1992-09-03    0.8       29.1

我到目前为止所做的事情:

yearly.data <- list
dates.intervals <- list(c("1990-01-01","1990-12-31"),
                        c("1991-01-02","1991-12-31"),
                        c("1992-01-02","1992-12-31"))

for (y in dates.intervals){
    yearly.data <- c(yearly.data, list(data[Date %between% y]))
}

但是这样,结果是

yearly.data
[[1]]
function (...)  .Primitive("list")

[[2]]
      Date          Rain      Temp
    1990-01-01    0.0       29.2
    1990-03-03    0.0       30.4
    1990-06-10    NA        25.2 
    1990-09-02    0.3       26.8
...
...

我无法从[[1]]中取出这个值,但这不是我主要担心的问题。我主要担心的是,我认为必须有一种更有效的方法来做到这一点,但我无法找到它。

0 个答案:

没有答案