r - 在 R 中使用 seq 函数时,错误“在 'by' 参数中签名错误”是什么意思?
问题描述
我有一个名为 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 天的工作具有与之关联的三行(我们正在做的可视化需要。)
我正在使用的代码是这样的:
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
我以前从未遇到过此错误,并且我在代码的早期使用了相同的格式并且它有效,所以也许它有细微差别?
解决方案
发现出了什么问题;在 1027 个观察中,有一个实例的开始日期晚于结束日期。这就是为什么它过去有效,但当我将它用于新数据时停止工作。“by”参数是否定的,因为两个日期之间的差异是负的。
推荐阅读
- node.js - 从 React 到 Node.js 的 POST 请求
- kubernetes - Helm:客户端和服务器之间的版本不兼容
- javascript - 通过 HTML 将对象的名称传递给 javascript
- eclipse - Google Cloud Endpoint 为空(API 资源管理器)
- javascript - 不使用 JQuery 滚动到元素
- spring - Thymeleaf 3 与 Spring Boot 2,无法处理模板
- c# - OData Azure API 不稳定的响应时间
- angularjs - 如何在angularJS中从控制器调用指令函数?
- javascript - 查找 HTML DOM 中是否存在指定的类
- c++ - gsl_complex 导致内存溢出