我有像这样的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]]
中取出这个值,但这不是我主要担心的问题。我主要担心的是,我认为必须有一种更有效的方法来做到这一点,但我无法找到它。