我正在使用FRED数据库中的NAPM ISM数据集。数据是每月频率。我想创建另一个每日频率的数据框,其中每个工作日的值是最后一个月的数据发布。因此,如果在2016年1月2日最后一次发布49.5,那么2月的每一天都有49.5的值。
代码示例
start_date <- as.Date("1970-01-01")
end_date <- Sys.Date()
US_PMI <- getSymbols("NAPM", auto.assign = FALSE, src ="FRED", from = start_date, to = end_date)
test <- data.frame(date=index(US_PMI), coredata(US_PMI))
答案 0 :(得分:0)
我不知道我需要哪些包和数据来重现您的示例,但您可以使用一系列日常日期,合并函数和动物园包中的NA填充来创建每日数据框:
library(zoo)
# Date range
sd = as.Date("1970-01-01")
ed = Sys.Date()
# Create daily and monthly data frame
daily.df = data.frame(date = seq(sd, ed, "days"))
monthly.df = data.frame(date = seq(sd, ed, "months"))
# Add some variable to the monthly data frame
monthly.df$v = rnorm(nrow(monthly.df))
# Merge
df = merge(daily.df, monthly.df, by = "date", all = TRUE)
# Fill up NA's
df = transform(df, v = na.locf(v))
这可能不是获取数据框的最快方法,但它应该有效。