我有一个关于按组对data.table中的日期进行排序的问题。
我有过去使用过的这段代码,但现在不起作用。
我已经发现,此问题与使用较新版本的data.table包有关。
该代码仅适用于旧版本(1.8.x),现在已更新为1.9.2,并且该代码无法正常工作。
谁能帮我解决这个问题。
这是一些数据:
test_data <- data.frame(group=c(1,2,3),
date=c("2011-01-01","2012-02-02","2013-03-03"),
date2=Sys.Date(),
stringsAsFactors=FALSE)
test_data[,"date"] <- as.Date(test_data[,"date"])
test_data[,"date2"] <- as.Date(test_data[,"date2"])
这是我的代码”
library("data.table")
identifier <- "group"
results <- data.table(test_data)[,{s=seq(from=date,to=Sys.Date(),by="days")},
by=list(group,date)]
我收到以下错误:
Ops.Date(del,by)中的错误:/未为“日期”对象定义
提前谢谢!
就像date
您看到的那样,该列似乎被强制转换为数字
data.table(test_data)[, date, by=list(group,date)]
# group date date
#1: 1 2011-01-01 14975
#2: 2 2012-02-02 15372
#3: 3 2013-03-03 15767
我认为这是一种回归,因为它与较旧的data.table版本一起使用,但是您可以通过强制回到Date来解决。
data.table(test_data)[, seq(as.Date(date, origin="1970-01-01"), Sys.Date(), by="days"),
by=list(group,date)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句