【发布时间】:2018-07-12 20:49:02
【问题描述】:
我正在尝试扩展一些代码以便能够: 1) 读入价格向量 2)将价格向量左连接到年(或年和月)的数据框 3) 使用基于可用价格的最后一年加上指定通货膨胀率的插值数据附加/填充缺失年份的价格。考虑一个这样的例子:
prices <- data.frame(year=2018:2022,
wti=c(75,80,90,NA,NA),
brent=c(80,85,94,93,NA))
我需要的是用最后的价格加上通货膨胀(假设 2%)填充每列缺失的行。我可以以一种非常蛮力的方式做到这一点:
i_rate<-0.02
for(i in c(1:nrow(prices))){
if(is.na(prices$wti[i]))
prices$wti[i]<-prices$wti[i-1]*(1+i_rate)
if(is.na(prices$brent[i]))
prices$brent[i]<-prices$brent[i-1]*(1+i_rate)
}
在我看来,应该有一种方法可以使用 apply() 和/或 fill() 的某种组合来做到这一点,但我似乎无法让它发挥作用。
任何帮助将不胜感激。
【问题讨论】:
-
有点旁白,但是您在引号中使用 NA 有什么原因吗?这是您需要在真实数据中解决的问题吗?
-
没有理由。将在帖子中修复。