我需要根据字段中存储的数字添加日历日期。
final_muestra1<-data.frame(prior_day1=c(1:17) )
我尝试了以下功能:
gg<-function(d) {
august <- (d < 8)
d[august] <- as.Date("2014-08-01") + (d[august]-1)
d[!august] <- as.Date("2014-07-01") + (d[!august]-1)
return(d)
}
final_muestra1$xx<-gg(final_muestra1$prior_day1)
但我明白了:
prior_day1 xx
1 1 16283
2 2 16284
3 3 16285
4 4 16286
5 5 16287
6 6 16288
7 7 16289
8 8 16259
9 9 16260
当我需要时:
prior_day1 xx
1 1 2014-08-01
2 2 2014-08-02
3 3 2014-08-03
.....
7 7 2014-07-07
8 8 2014-07-08
谢谢!
答案 0 :(得分:1)
在返回之前,您可能需要将d重新定义为Date
对象。您只是一次将d
向量的一部分定义为Date对象。
gg<-function(d) {
august <- (d < 8)
d[august] <- as.Date("2014-08-01") + (d[august]-1)
d[!august] <- as.Date("2014-07-01") + (d[!august]-1)
d <- as.Date(as.numeric(d),format="%Y-%m-%d",origin=as.Date("1970-01-01"))
return(d)
}