 <p>I do not know which packages and data I need to reproduce your example but you can use a sequence of daily dates, the merge function and the NA filler in the zoo package to create the daily data frame:</p> <pre><code>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)) </code></pre> <p>This might not be the fastest way to obtain the data frame but it should work.</p>