2011-12-13 59 views
0

我与2列的data.frame日期为每个站和值观测=日期=删除行由子集

> 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包含 闰年(增加了29天至二月)和dataset.b始终28天的二月。我想在dataset.a中忽略二月的所有第29天,并进行乘法运算。

我应该能够使用这两个指数做出一个基本的子集:

which(strftime(dataset.a[,1],"%d")!="29") 
which(strftime(dataset.a[,1],"%m")!="02") 

然而,一旦我添加了一个逻辑与我失去的data.frame位置是我今年02-29和他返回两个索引组合的TRUE行数。

我想这是一个非常基本的问题,但我迷路了。

回答

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月日期。

+0

是的,我忘了编辑最后一行,我现在已经纠正。谢谢!! –