R语言 解决无法打开链结的问题

时间:2021-05-20

近期,在项目中遇到一个棘手的问题。

R脚本在centos服务器上通过"R --no-save filename.R"的方式运行R脚本可以成功,分析结果也可以存入MySQL,该种方式适合算法工程师测试脚本使用。

但是,同样的脚本,在Java后台调用时却失败了。

为了定位问题位置,在脚本内插入很多打印语句,锁定了问题出现在利用RMySQL包将分析结果存入数据库部分,由于Java调用R脚本时R报错信息无法获取,因此又在R脚本中抓取了try函数的执行结果,并存储于自建的R运行日志中。

查看日志发现,Error in file(file ,open = “wb”): 无法打开链结。

搜索资料发现,该问题的可能原因是,手工清除了操作系统的临时文件,导致帮助文件丢失。

解决办法是由于重启Rserve。

重启Rserve的方法,先杀死,再重启。

#查看Rserve进程端口netstat -nltp|grep Rserve#杀死Rserve进程kill -9 任务ID(该ID通过netstat -nltp|grep Rserve查看,为“/Rserve”前面的数字)#以远程模式启动Rserve(支持远程访问)R CMD Rserve --RS-enable-remote

补充:R语言 无法打开文件: No such file or directory

修了一门统计课,需要用到R语言,刚开始上手,还不是很熟悉。

将文件"exam0203.txt"保存之后,使用 read.table进行读取,输出:无法打开文件'exam0203.txt': No such file or directory,如下图,查找了资料,才知道这是因为我的R软件工作目录路径与文件的保存目录路径不一致导致的,现将解决方法附上。

由于是路径不一致导致的出错,所以可以在读取时写上文件的全路径,或者将文件放到当前工作目录下,当然,也可以将文件目录设置为工作目录。

1、读取时写上文件的全路径

我的文件是保存在 G:\R-language路径下

2、将文件放到当前R的工作目录

首先要获取当前R的工作目录,使用 getwd()

再将要读取的“exam0203.txt”文件放到该目录下,就能正确读取了。

3、将文件所在目录设置为R的工作目录

重新设置R的工作目录,使用 setwd()

此时再进行读取文件就可以正确读取了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章