1

尝试为日期“2010-09-24”和所有其他时间段的值为 100 和 NA 的数据集生成第三个变量,称为“var”。

> dataset
           weight
2010-10-04  52495
2010-10-01  53000
2010-09-30  52916
2010-09-29  52785
2010-09-28  53348
2010-09-27  52885
2010-09-24  52174
2010-09-23  51461
2010-09-22  51286
2010-09-21  50968
2010-09-20  49250
> dataset=merge(dataset,var=NA)

我知道我可以使用ifelse(index(dataset)=="2010-09-24",100,NA)来生成变量。但是是否有任何函数可以用来将样本限制为“2010-09-24”,然后将值放在正确的列和行中?

4

2 回答 2

2

我以前从未见过以这种方式使用 merge() ,并且该命令对我不起作用。所以也许我误解了这个问题或遗漏了关于时间序列数据的一些东西,但我会这样做:

1:添加一个新的 NAs 向量

数据集$var<-NA

2:索引到您想要的日期并将值 100 保存到变量 var

数据集[dataset$date=="24-09-2010","var"]<-100

那是你要找的吗?

于 2012-12-30T01:35:13.200 回答
1

是 - 如果您使用具有适当时间索引的数据类型,例如zooxts

在这里查看关于这两个问题的先前问题,和/或阅读zoo包中的小插曲。

于 2012-12-30T01:17:24.483 回答