基于r中的日期插入数据帧

时间:2016-02-22 14:08:02

标签: r date dataframe interpolation

我想优化我的程序,根据日期顺序插入数据框列。 这是合约。我有一个包含两列的数据框,例如

d <- data.frame(x=c("2012-01-01","2013-01-01","2014-01-01","2015-01-01","2016-01-01","2017-01-01","2018-01-01","2019-01-01"),
                y=c(70, 80, 90, 80, 75 ,70, 75, 60))

我想在几个月内按日期序列扩展此数据框

xx <- seq(as.Date(x[1]),as.Date(x[length(x)]),by="months")

然后在此序列上插入我的第二列。 这就是我做的,

# initialize the final data frame
r <- data.frame(matrix(NA,length(xx),2))
# copy the data I know
for (i in 1:length(x))
  r[which(xx==as.Date(d$x[i])),] <- d[i,]
# set the date sequence on the first column
r[,1] <- as.character(xx,"%Y/%m/%d")
# interpolate the values on the second column
r[,2] <- as.numeric(na.approx(r[,2]))

有更好,更优雅的方式吗?也许只是一枪。

0 个答案:

没有答案