在R中使用seq函数时,错误“以'by'参数错误登录”是什么意思?

时间:2018-11-21 15:36:39

标签: r dataframe

我有一个名为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

我以前从未遇到过此错误,并且我在代码中早些时候使用了相同的格式并且可以正常工作,所以也许有些微妙之处吗?

1 个答案:

答案 0 :(得分:1)

发现出了什么问题; 1027个观测值中有一个实例,其开始日期在结束日期之后。这就是为什么它过去可以工作,但是当我将其用于新数据时却停止工作的原因。 “ by”参数为负,因为两个日期之间的差为负。