2017-10-16 52 views
0

sessionInfo()[R崩溃每当我不写sqldf查询完美

[R版本3.4.1(2017年6月30日)平台:x86_64的-PC-Linux的GNU(64位) 下运行:Ubuntu的LTS 16.04.3

矩阵产品:默认BLAS: /home/roughmar/anaconda3/lib/R/lib/libRblas.so LAPACK: /家庭/ roughmar/anaconda3/lib中/ R/lib/libRlapack.so

区域设置:[1] LC_CTYPE = en_US.UTF-8 LC_NUMERIC = C
LC_METAGES = en_US.UTF-8 [7] LC_PAPER = en_IE.UTF-8 LC_NAME = C [17] [9] LC_ADDRESS = C LC_TELEPHONE = C [11] LC_MEASUREMENT = en_IE.UTF-8 LC_IDENTIFICATION = C

附基础包:[1]统计图形grDevices utils的
数据集的方法基础

通过加载命名空间(并未附加):[1] compiler_3.4.1 R6_2.2.1 magrittr_1.5 IRdisplay_0.4.4 [5] pbdZMQ_0.2-6
tools_3.4.1蜡笔_1.3.2 uuid_0.1-2 [9] stringi_1.1.5
IRkernel_0.7.1 jsonlite_1.5 stringr_1.2.0 [13] digest_0.6.12
repr_0.10 evaluate_0.10

每当加载sqldf库我笑脸相迎:

加载所需包:gsubfn

加载所需包装:原

无法加载tcltk。将使用较慢的R代码。

加载所需包:RSQLite

任何sqldf查询我写的运行完全,结果符合市场预期。 当我在表达式上犯了一个错误时,如额外的逗号或错误的变量,或任何你可能想到的通常会输出错误的问题都会出现。

我没有收到错误 - 它只是崩溃。 在Rstudio和jupyter上进行了测试 - 内核刚死,需要重新启动。一段时间后,它会变得累人,因为我需要每次重新载入所有变量。

我知道这是相当含糊的,但愿意提供任何可能需要的信息。

在此先感谢!

回答

5

我推测,这是在水蟒,或更一般地在混合康达和滑动R.

在我的系统---标准的Debian(17.04)R(3.4。2)通过CRAN镜与标准sqldf二进制文件---这一切工作只是罚款:

R> a1r <- head(warpbreaks)  ## initial `help(sqdf)` example 
R> a1s <- sqldf("select * from warpbreaks limit 6") 
R> identical(a1r, a1s) 
[1] TRUE 
R> sqldf("selectFOO * from warpbreaks limit 6 BAR") # no termination on error 
Error in rsqlite_send_query([email protected], statement) : 
    near "selectFOO": syntax error 
R> 
R> sqldf("select * from warpbreaks limit 2") 
    breaks wool tension 
1  26 A  L 
2  30 A  L 
R> 

二进制文件可能不兼容时,工具链会出现问题。

我建议本地重建所涉及的软件包,以及它们的依赖关系。因此,在最低RSQLite和DBI情况下,问题当然是这些数据包会包含更多的数据包。

你也可以考虑在Docker中运行。或者,照我(和bajillion其他人)那样做:不要让Conda靠近你的R堆栈。

+0

这就是我最终做的。卸载conda的R并从源代码中获取它。 我意识到我遇到了一些问题,它们来自几个软件包的依赖关系,而这些软件包并没有一起训练。 将R重新安装为独立版,使所有工作都变得非常好用。 完全不同的说明 - ubuntu 17.04如何为ya工作? 非常感谢您花时间回答您的问题。 – Roughmar

+0

i)好,你有它的工作。 ii)您不需要重新安装R - 我们中的许多人使用[来自CRAN的Ubuntu R [二进制文件]](https://cloud.r-project.org/bin/linux/ubuntu/README.html)(基于在我保留的Debian软件包中; iii)17.04很好,就像以前的所有Ubuntu版本一样;十年来一年两次升级。 iv)如果一切正常,请随时接受(请点击标记标记,因为OP见)和upvote(点击trinagle) - 这就是StackOverflow的“工作原理”。 –

+0

是bajillion >> bazillion,反之亦然? – rawr