使用重复的每月值创建每日数据集

时间:2016-03-14 04:17:40

标签: r quantmod

我正在使用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))

1 个答案:

答案 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))

这可能不是获取数据框的最快方法,但它应该有效。