我有一个data.frame,其中2列日期=每个站点的观察日期和值=观察数据
> head(dataset.a)
dates values
1 1976-01-01 7.5
2 1976-01-02 NA
3 1976-01-03 NA
4 1976-01-04 NA
5 1976-01-05 NA
6 1976-01-06 10.2
(...)
我必须将每行乘以另一个data.frame:
的值> head(dataset.b)
dates values
1 1976-01-01 0.23
2 1976-01-02 NA
3 1976-01-03 NA
4 1976-01-04 NA
5 1976-01-05 NA
6 1976-01-06 1.23
(...)
两个数据集都包含公历,但数据集.a包含 闰年(2月29日增加)和dataset.b在2月份总是28天。我想在dataset.a中忽略2月29日的全部并进行乘法运算。
我应该能够使用两个索引制作一个基本子集:
which(strftime(dataset.a[,1],"%d")!="29")
which(strftime(dataset.a[,1],"%m")!="02")
然而,一旦我添加一个逻辑AND我松开了data.frame中的位置,我就有了YEAR-02-29,并且他返回了两个索引组合的TRUE行数。
我想这是一个非常基本的问题,但我迷路了。
答案 0 :(得分:1)
尝试逻辑索引:
idx <- strftime(ws.hb1.dataset[d,1],"%d")!="29" & strftime(ws.hb1.dataset[d,1],"%m")!="02"
注意:我假设ws.hb1.dataset[d,1]
基本上是dataset.a[,1]
吗?
然后你会得到TRUE TRUE ... TRUE FALSE TRUE TRUE ..
的向量,其中FALSE
与29/2月一致。
然后你可以dataset.a[idx,]
来获得非29/2月日期。