首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >data.table、readr和dplyr之间的冲突?

data.table、readr和dplyr之间的冲突?
EN

Stack Overflow用户
提问于 2015-06-09 03:43:56
回答 1查看 1.1K关注 0票数 4

我遇到了data.table (v1.9.4)、dplyr (v0.4.1)和readr (v0.1.1)包之间的明显冲突。我在Windows7上使用RStudio (版本0.98.1103)和R版本3.2.0。

当使用以下代码将data.table加载到R中时,会出现问题:

代码语言:javascript
复制
DT <- as.data.table(
      read_csv("my_file.csv", 
      col_types = list(Date1 = col_date(format = "%Y/%m/%d"), 
                       Date2 = col_date(format = "%Y/%m/%d")))
      )

文件看起来加载正常,str(DT)将该表报告为:

代码语言:javascript
复制
Classes ‘tbl_df’, ‘tbl’, ‘data.table’ and 'data.frame':

但是,在尝试使用:=运算符赋值时,我收到以下错误消息:

代码语言:javascript
复制
Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, 
once only and in particular ways. See help(":=").

因此,它似乎没有将其识别为data.table。

同样,在尝试使用j中的.N函数按年份字段对记录进行计数时,也会出现以下错误:

代码语言:javascript
复制
Error in `[.tbl_df`(DT, , .N, keyby = Date1) : unused argument (keyby = Date1)

我不是一个非常老练的用户,所以我可能会错过一些简单的东西。我怀疑是readr,因为它是最新的。然而,需要readr加上dplyr才能得到错误。如果我只使用data.table和readr而不加载dplyr,那么就不会有问题。如果我在不使用readr的情况下将数据加载到R中,即使加载了readr,data.table和dplyr也可以很好地协同工作。

我显然可以解决这个问题,但我想报告它。我喜欢data.table的语法,通常会使用fread来读取数据。我之所以在这里使用readr,是为了学习它,但也是因为它能够处理日期和时间字段。我使用dplyr主要是因为它具有处理数据库的能力。

最后,我把这个项目放了几个星期,然后又重新开始了。我不记得以前出现过这个问题,也没有跟踪过自那时以来哪些包进行了更新。

EN

回答 1

Stack Overflow用户

发布于 2015-06-09 05:32:14

感谢Arun指出这个问题是已知的,与tbl_df类有关,并将在data.table 1.9.5版本的更新中修复。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30717739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档