data.table函数可以动态操作日期和时间列吗?

时间:2011-11-22 00:23:59

标签: r data.table lubridate

我已经开始使用data.table了。实际上它是非常快速且非常好的语法。我遇到日期问题。我喜欢使用lubridate。在我的许多数据集中,我有日期或日期和时间,并使用lubridate来操纵它们。 Lubridate将该瞬间存储为POSIX类。我在这里看到了创建新变量的答案,例如只是为了获得年份。 2005年。我不喜欢那样。有时我会按年度和其他时间按季度和其他时间按月和其他时间按持续时间进行分析。我想做一些简单的事情,比如这个

mydatatable[,length(medical.record.number),by=year(date.of.service)]

应该给我一年中患者遭遇的次数。 by功能不起作用。

Error in names(byval) = as.character(bysuborig) : 
  'names' attribute [2] must be the same length as the vector [1]

请您指出一些插图,其中data.tables与日期一起使用,以及这些日期的操作和分类是否即时完成。

1 个答案:

答案 0 :(得分:3)

这使用help(IDateTime)页面中的一个示例。它表明您可以将by=参数的语法转换为“=”形式的字符值,或者(在下面的@Matthew Dowle的评论之后)您可以尝试使用您正在使用的函数形式(尽管我我没有能够让它自己工作。我确实得到了首选形式:by=list(wday=wday(idate))可以工作。)请注意,密钥创建假定为IDateTime类,因为没有idate或{{1}变量。这些是类

的属性
itime