【发布时间】:2020-02-10 23:28:01
【问题描述】:
***注意:请不要链接类似的帖子。我发现了其他几个类似的帖子,但他们的回复并没有解决我得到的错误:“seq.int(0, to0 - from, by) 中的错误:'to' must be afinite number”或“from must be of长度 1".... 我希望了解为什么会出现这些错误语句以及如何防止它们发生...谢谢!
我有一个如下的数据框
id startdate enddate
1 01/01/2011 01/05/2011
1 02/03/2012 02/05/2012
2 03/04/2013 03/06/2013
3 04/06/2014 04/09/2014
我想转换数据框以创建以下内容:
id date
1 01/01/2011
1 01/02/2011
1 01/03/2011
1 01/04/2011
1 01/05/2011
1 02/03/2012
1 02/04/2012
1 02/05/2012
2 03/04/2013
2 03/05/2013
2 03/06/2013
....等填写开始日期和结束日期之间的日期序列
我已经尝试了以下......
one<-as.data.table(one)
one[, startdate:=as.character(startdate)]
one[, enddate:=as.character(enddate)]
one[, startdate:=as.Date(startdate, format="%m/%d/%Y")]
one[, enddate:=as.Date(enddate, format="%m/%d/%Y")]
one<-as.data.frame(one)
one%>%
rowwise() %>%
do(data.frame(id=.$id, date=seq(.$startdate,.$enddate,by="day")))
当我运行它时,我收到以下错误: seq.int(0, to0 - from, by) 中的错误:'to' must be afinite number
这是为什么?我该如何修复这段代码?
【问题讨论】:
-
你的例子没有显示这样的条件
-
能否也检查日期格式是否相同或是否有多种格式。即
seq(NA, Sys.Date(), by = '1 day')# Error in seq.default(NA, Sys.Date(), by = "1 day") : 'from' must be a finite number -
你能检查一下
anydate更新是否显示同样的错误 -
@akrun 我刚刚尝试了 anydate 更新并收到了相同的错误声明...感谢您的所有帮助和建议!
-
如果您可以分享指向数据的链接或显示错误的小示例,会很有帮助
标签: r dataframe data.table