【专题:R语言】问题解决:library(xlsx) 无法导入(涉及到:rjava,xlsxjar,xlsx)| 附 R代码和测试实例

在尝试导入R语言的xlsx包时遇到了rJava的问题。通过更新Java环境,从jdk-14切换到较旧的jre 1.5.0,并正确设置Java_Home路径,成功解决了导入xlsx包的错误。重新启动RStudio后,按照推荐的顺序测试,xlsx包运行正常。提供测试代码和测试用例供读者实践。

问题:

library(xlsx) 无法导入使用

解决经历:

  1. 前提:
    ① 我的电脑里装的是R64位 + Java64位
    ② 已经安装了rjava,xlsxjar,xlsx包(注意要按顺序,顺序错了就进安装路径下删掉重来)
install.packages(“rJava”)
install.packages(“xlsxjars”)
install.packages(“xlsx”)
  1. 安装这些包后直接调用
    => rJava出现问题 (错误:unable to load shared object '.../rJava.dll')安装xlsx包后直接调用:rJava出现问题
  2. 因为电脑里本来装了jdk-14(官网说:jdk-14里包含了jre,所以我就只装了jdk64 + eclipse),所以我就直接将Java_Home路径设为jdk的安装路径了,然后再调用xlsx包
    => Java版本出现问题 (错误:Your java version is 14. Need 1.5.0 or higher.')
    初次更改Java_Home
R语言xlsx库提供了在R中读取、写入操作Microsoft Excel文件(.xlsx)的功能,是一种强大的统计分析数据可视化工具的辅助库[^1]。 安装xlsx库时,需先打开Rstudio,依次输入以下代码: ```R install.packages('rJava') install.packages('xlsxjars') install.packages('xlsx') ``` 安装完成后,输入`library(xlsx)``read.xlsx()`函数即可使用。若直接使用`install.packages("xlsx")`安装不上,且出现`JAVA_HOME cannot be determined from the Registry`等错误,可能是电脑未安装java。此时,要安装最新版本的java,若用的R是64位的,需下载64位java,下载地址为`http://www.java.com/en/download/manual.jsp`,要安装在`C:\Program Files\Java`下面。之后在R中加载环境,代码为`Sys.setenv(JAVA_HOME='C:\Program Files\Java\jre1.8.0_45\')`,或者直接将java添加到环境变量中。若之前安装顺序不对导致安装不上xlsx,可到R安装目录下的library中找到rJava或者xlsxjars删除掉,重新在R控制台进行安装。若显示rJava安装已打开无法安装,可使用`(.packages())`查看当前加载的安装包,若rJava已加载,使用`detach("package:rJava")`卸载安装包,之后再执行安装命令[^2][^4]。 xlsx库中的常用函数及其功能如下: - `read.xlsx()`:用于读取Excel文件。 - `write.xlsx()`:可将R中数据框写入xlsx文件,能向已存在文件追加sheet,还可自定义表名,支持中文。 - `loadWorkbook()`:把xlsx文件载入R中作为对象。 - `getSheets()`:将R中的xlsx对象中的表读出作为对象。 - `removeRow()`:可删除某xlsx表对象中的行。 - `addDataFrame()`:能向某xlsx表对象中添加数据框。 - `saveWorkbook()`:可保存修改过的xlsx对象为xlsx文件。对于原xlsx中存在公式的表格,在`saveWorkbook`之前需添加语句`a$setForceFormulaRecalculation(TRUE)`(a为xlsx对象),否则Excel中公式计算的数值将不更新[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值