sessionInfo()
R版本3.4.1(2017-06-30)平台:x86_64-pc-linux-gnu(64位) 运行于:Ubuntu 16.04.3 LTS
Matrix产品:默认BLAS: /home/roughmar/anaconda3/lib/R/lib/libRblas.so LAPACK: /home/roughmar/anaconda3/lib/R/lib/libRlapack.so
区域设置:[1] LC_CTYPE = en_US.UTF-8 LC_NUMERIC = C
[3] LC_TIME = en_IE.UTF-8 LC_COLLATE = en_US.UTF-8 [5] LC_MONETARY = en_IE.UTF-8 LC_MESSAGES = en_US.UTF-8 [7] LC_PAPER = en_IE.UTF-8 LC_NAME = C [9] LC_ADDRESS = C LC_TELEPHONE = C [11] LC_MEASUREMENT = en_IE.UTF-8 LC_IDENTIFICATION = C附加基础包:[1] stats graphics 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 crayon_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
加载必需的包:proto
无法加载tcltk。将使用较慢的R代码。
加载必需的包:RSQLite
我编写的任何sqldf查询运行完美,结果如预期。 当我在表达式上犯了错误,例如额外的逗号,或者误导变量,或者你可能想象的通常会输出错误的任何内容时,问题就会出现。
我没有收到错误 - 它只是崩溃了。 在Rstudio和jupyter上都进行了测试 - 内核就死了,需要重新启动。经过一段时间后,它变得很累,因为我需要每次都重新加载所有变量。
我知道这很模糊,但我愿意提供可能需要的任何信息。
提前致谢!
答案 0 :(得分:6)
我猜测这是在Anaconda,或者更普遍的是混合Conda和普通R.
在我的系统上---标准的Ubuntu(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(conn@ptr, 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中运行。
或者,像我(和其他人一样)做:不要让康达靠近你的R堆。