我正在尝试创建一个数据框,在时间列中我需要每次在下一个日期之前写入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
答案 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))))