数据表错误:找不到函数“.”

9

我尝试运行以下代码,但每次都会出现如下错误:Error in eval(expr, envir, enclos) : could not find function "."。如何解决?有人能帮忙吗?

data(mtcars)
library(data.table)
mtcarsDT <- data.table(mtcars)
mtcarsDT[ mpg > 20,
        .(AvgHP = mean(hp),
        "MinWT(kg)" = min(wt * 453.6)), # wt lbs
        by = .(cyl, under5gears = gear < 5)
        ]

以下是会话信息

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] data.table_1.9.2

loaded via a namespace (and not attached):
[1] digest_0.6.8    htmltools_0.2.6 plyr_1.8.1      Rcpp_0.11.3     reshape2_1.4.1  rmarkdown_0.3.3 stringr_0.6.2  
[8] tools_3.1.2 

请尝试从干净的 R 会话开始。同时提供 sessionInfo() - user3710546
1
这个问题似乎出现在 data.table_1.9.2 版本中,而在 data.table_1.9.4 版本中则没有出现。 - user3710546
2
@RomanLuštrik,它是“x86_64-apple-darwin10.8.0”,即OSX SnowLeopard。根据此页面,在此操作系统上编译版本1.9.4时存在错误。 - user3710546
1
@Pascal,你需要标记我,否则我看不到你的消息。在这种情况下,您可以随时下载源文件,并通过指定源文件路径从源代码安装它。 - Arun
4
@Pascal:在具备适当的XCode和命令行工具的R SL版本上,以下操作可成功:install.packages("data.table", type="source", dependencies=TRUE),然后按照此顺序使用 unloadNamespace 命令卸载 'data.table'、'reshape2' 和 'plyr' 包后,我能够加载1.9.4版本并运行该代码。 - IRTFM
显示剩余10条评论
1个回答

3

显然,我2.5年前提供的指令仍适用于使用过时版本Mac R的用户。假设您已安装Xcode和命令行工具,您需要首先执行以下步骤之一:a) 重新启动R(不加载任何data.table,reshape2和dplyr版本),或者b) 删除可能与测试加载新包的能力冲突的任何已加载Namespaces:

unloadNamespace('data.table')
unloadNamespace('reshape2')
unloadNamespace('plyr')

然后从源代码构建:
install.packages("data.table", type="source", dependencies=TRUE)

从源代码构建安装程序可能会比安装二进制包更好用的原因是,前者可以更好地检查版本依赖关系。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接