【发布时间】:2011-12-13 00:13:08
【问题描述】:
我有一个 data.frame,其中包含 2 列 dates=每个站的观测日期和 values=observation data
> 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
(...)
两个数据集都包含公历,但是 dataset.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,如果我有 YEAR-02-29,我在 data.frame 中的位置就会丢失,他返回给我两个索引组合为 TRUE 的行数。
我想这是一个非常基本的问题,但我迷路了。
【问题讨论】:
标签: r