I have a dataframe called 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>
And instead of a start and end date, I am trying to transform it so each row has a single date, and a job that takes 3 days has three rows associated with it (needed for the visualization we are doing.)
The code I am using is this:
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)]
And the error I am getting when I use this is:
Error in seq.int(0, to0 - from, by) : wrong sign in 'by' argument
I have never encountered this error before, and I used this same format earlier in the code and it worked, so maybe it's something nuanced?
Found what was going wrong; there was a single instance in the 1027 observations where the start date was after the end date. This is why it worked in the past, but stopped working when I used it for new data. The "by" argument was negative because the difference between the two dates was negative.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.