参照《R语言实战》一书学习实践时,在数据的输入章节导入xlsx数据时出现无法载入xlsx包的情况,解决之路如下:
安装xlsx包 install.packages(“xlsx”) 成功后,载入xlsx包
library(xlsx)
报错
Error: package or namespace load failed for ‘xlsx’:
loadNamespace()里算'rJava'时.onLoad失败了,详细内容:
调用: fun(libname, pkgname)
错误: JAVA_HOME cannot be determined from the Registry
百度说是没有配置Java环境变量,执行如下代码
Sys.setenv(JAVA_HOME=‘C:/Program Files/Java/jdk1.6.0_33/jre’)
再次载入xlsx包
library(xlsx)
再次报错
Error: package or namespace load failed for ‘xlsx’:
loadNamespace()里算'rJava'时.onLoad失败了,详细内容:
调用: inDL(x, as.logical(local), as.logical(now), ...)
错误: unable to load shared object 'C:/Users/Administrator/Documents/R/win-
library/3.6/rJava/libs/x64/rJava.dll':
LoadLibrary failure: 找不到指定的模块。
原来是因为自己没有装Java环境,所以找不到指定的模块,然后就去了书上提供的网址www.java.com下载了Java,并设置JAVA_HOME为自己的安装路径,再次载入xlsx包,仍然报错
Error: package or namespace load failed for ‘xlsx’:
loadNamespace()里算'rJava'时.onLoad失败了,详细内容:
调用: inDL(x, as.logical(local), as.logical(now), ...)
错误: unable to load shared object 'C:/Users/Administrator/Documents/R/win-library/3.6/rJava/libs/x64/rJava.dll':
LoadLibrary failure: %1 不是有效的 Win32 应用程序。
报这个错的原因是因为安装的Java是32位的,而R是64位的,两者不兼容。然而并没有在Java的官网里发现64位的Java,请教了Java开发同事,提供了一个下载64位Java的地址:
https://www.oracle.com/java/technologies/jdk8-downloads.html
安装Java成功后,重新配置成自己安装路径的环境
Sys.setenv(JAVA_HOME=‘C:/Program Files/Java/jdk1.8.0_221/jre’)
再次载入xlsx包
library(xlsx)
成功!!!导入测试下
mydataframe <- read.xlsx(“C:/Users/Administrator/Desktop/R导入测试.xlsx”,1)
绫诲埆 鎸囨爣瀛楁. 鎸囨爣鍚嶇О
1 缂磋垂鏃堕棿鍋忓ソ fs_1 杩戝叚涓湀缂磋垂鏃ユ湡鍦<a8>1鍒<b0>5鍙锋鏁<b0>
此种导入方法如果不指定编码类型encoding = "UTF-8"会导致乱码,所以比起这种导入方法更建议安装readxl包
library(readxl)
mydataframe <- read_excel(“C:/Users/Administrator/Desktop/R导入测试.xlsx”)
类别 指标字段 指标名称
<chr> <chr> <chr>
1 时间偏好 fs_1 缴费日期在1到5号的次数
显示界面友好且兼容性强,工作时更多采用readxl包