我有一个名为Forecast.df的数据框:
> str(forecast.df)
Classes ‘data.table’ and 'data.frame': 1027 obs. of 9 variables:
$ group : chr "IT" "IT" "IT" "IT" ...
$ Name : chr "name1" "name1" "name2" "name2" ...
$ position: chr "Specialist" "Specialist" "Analyst" "Analyst" ...
$ job : chr "job1" "job2" "job3" "job4" ...
$ dept : chr "IT" "FIN" "FIN" "P&C" ...
$ bucket : chr "Apr-18" "Apr-18" "Apr-18" "Apr-18" ...
$ start : Date, format: "2018-01-02" "2018-01-02" "2018-01-15" "2018-01-22" ...
$ end : Date, format: "2018-04-06" "2018-01-26" "2018-04-20" "2018-04-06" ...
$ hours : int 149 8 109 123 44 124 125 142 70 75 ...
- attr(*, ".internal.selfref")=<externalptr>
而不是开始日期和结束日期,我尝试对其进行转换,以使每行具有一个日期,而耗时3天的作业具有与之关联的三行(我们正在执行的可视化需求。)< / p>
我正在使用的代码是这样:
tidyForecast.df <- setDT(forecast.df)[ , list(group = group
, name = Name
, position = position
, job = job
, dept = dept
, bucket = bucket
, hours = hours
, date = seq(start
, end
, by = "day"))
, by = 1:nrow(forecast.df)]
使用此方法时出现的错误是:
Error in seq.int(0, to0 - from, by) : wrong sign in 'by' argument
我以前从未遇到过此错误,并且我在代码中早些时候使用了相同的格式并且可以正常工作,所以也许有些微妙之处吗?
答案 0 :(得分:1)
发现出了什么问题; 1027个观测值中有一个实例,其开始日期在结束日期之后。这就是为什么它过去可以工作,但是当我将其用于新数据时却停止工作的原因。 “ by”参数为负,因为两个日期之间的差为负。