如何解决执行seq函数时的错误?

时间:2019-02-14 11:20:56

标签: r dataframe seq

我正在运行以下代码,以获取从2014年1月22日到2014年2月2日的所有日期。但是,我收到了一个我不理解的错误(因为我遵循以下页面上的代码函数:https://www.rdocumentation.org/packages/base/versions/3.5.2/topics/seq.Date

seq(as.Date("22/01/2014"), as.Date("02/02/2014"), "days")

给我以下错误:

 Error in seq.int(0, to0 - from, by) : wrong sign in 'by' argument

这是怎么回事?

2 个答案:

答案 0 :(得分:2)

尝试调试您的代码。是否每个部分都能按预期解决?与示例进行比较,看看有哪些区别:

Them: seq(as.Date("1910/1/1"), as.Date("1999/1/1"), "days")
You   seq(as.Date("22/01/2014"), as.Date("02/02/2014"), "days")

您可以运行该示例吗?如果没有,那么您的环境中正在发生某种危险的事情。

您的代码与示例匹配吗?尝试一次修改该示例,使其与您要尝试的内容相匹配。

也许是日期格式。尝试执行一小段代码:

as.Date("22/01/2014")
[1] "0022-01-20"

这看起来正确吗?也许as.Date不了解美国日期格式。尝试修改您的代码:

seq(as.Date("2014-01-22"), as.Date("2014-02-02"), by="days")
[1] "2014-01-22" "2014-01-23" "2014-01-24" "2014-01-25" "2014-01-26" "2014-01-27" "2014-01-28" "2014-01-29" "2014-01-30" "2014-01-31" "2014-02-01"
[12] "2014-02-02"

答案 1 :(得分:1)

尝试以下选项:

seq.Date(as.Date("2014/01/22"), as.Date("2014/02/02"), by="days")
seq.Date(as.Date("22/01/2014", format="%d/%m/%Y"), as.Date("02/02/2014", format="%d/%m/%Y"), by="days")
seq(as.Date("2014/01/22"), as.Date("2014/02/02"), by="days")
seq(as.Date("22/01/2014", format="%d/%m/%Y"), as.Date("02/02/2014", format="%d/%m/%Y"), by="days")