创建一个独特的日期序列

ATM*_*hew 12 r date

假设我想生成一个数据框,其中包含一个以下列格式构造的列.

2011-08-01
2011-08-02
2011-08-03
2011-08-04
...
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用该seq()命令生成此数据.

像下面这样的东西:(显然不起作用)

seq(2011-08-01:2011-08-31)
Run Code Online (Sandbox Code Playgroud)

我是否必须使用toDate和regex以此特定格式生成此日期.

jor*_*ran 33

正如我在评论中指出的那样,seq有日期的方法,seq.Date:

seq(as.Date('2011-01-01'),as.Date('2011-01-31'),by = 1)
 [1] "2011-01-01" "2011-01-02" "2011-01-03" "2011-01-04" "2011-01-05" "2011-01-06" "2011-01-07" "2011-01-08"
 [9] "2011-01-09" "2011-01-10" "2011-01-11" "2011-01-12" "2011-01-13" "2011-01-14" "2011-01-15" "2011-01-16"
[17] "2011-01-17" "2011-01-18" "2011-01-19" "2011-01-20" "2011-01-21" "2011-01-22" "2011-01-23" "2011-01-24"
[25] "2011-01-25" "2011-01-26" "2011-01-27" "2011-01-28" "2011-01-29" "2011-01-30" "2011-01-31"
Run Code Online (Sandbox Code Playgroud)


42-*_*42- 10

我用seq()试图制作一个数字序列也犯了同样的错误.不要在参数之间使用":"运算符,如果要创建日期序列,则需要使用日期.另一种方法是获取一个日期并添加一个以0开头的数字序列:

> as.Date("2000-01-01") + 0:10
 [1] "2000-01-01" "2000-01-02" "2000-01-03" "2000-01-04" "2000-01-05" "2000-01-06"
 [7] "2000-01-07" "2000-01-08" "2000-01-09" "2000-01-10" "2000-01-11"
Run Code Online (Sandbox Code Playgroud)


Jos*_*ich 7

你可以试试timeBasedSeqxts包.请注意,参数是一个字符串并使用双冒号.

timeBasedSeq("2011-08-01::2011-08-31")
Run Code Online (Sandbox Code Playgroud)