R以特定方式创建数据框

时间:2014-07-18 08:04:39

标签: r

我正在尝试创建一个数据框,在时间列中我需要每次在下一个日期之前写入1次。例如:

1983-01-01
1983-01-01
1983-01-01
1983-01-01
1983-01-02
1983-01-02

10年。

我使用了这个命令,但我没有所需的格式。

data=data.frame(date=as.Date("1983-01-01") +seq(n))
head(data)
        date
1 1983-01-02
2 1983-01-03
3 1983-01-04
4 1983-01-05
5 1983-01-06
6 1983-01-07

1 个答案:

答案 0 :(得分:1)

这是创建数据框的一种方法:

library(zoo)
start_date <- as.Date("1983-01-01")
stop_date <- as.Date(as.yearmon(start_date) + 10) - 1
# [1] "1992-12-31"
dat <- data.frame(date = rep(seq(start_date, stop_date, by = 1), each = 4))

更新(根据评论):

dates <- lapply(seq(0, 9), function(x) 
  rep(as.Date((as.yearmon(start_date) + x) + (0:11)/12), each = 3) + c(0,10,20))
dat <- do.call(rbind, lapply(dates, 
                             function(x) data.frame(date = rep(x, each = 4))))