问题:

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
  3. 鉴于我安装的是最新的jdk,所以照理说不应该有Java版本的问题,于是我去搜索了一下 java 1.5.0,提示为 jre 1.5.0 (java运行环境1.5.0,很久之前的一个老版本了)
    在这里插入图片描述
    我决定碰下运气,我下载最新的jre (jre_8u241.exe) ,单独然后安装jre环境,添加路径到环境变量
    在这里插入图片描述
  4. 然后重新将Java_Home路径设为新安装的jre的路径,然后关掉RStudio,重新启动,按参考的其它UP主(具体见参考链接)推荐的调用包的顺序(① 调用rJava,② 调用 xlsxjars,③ 调用xlsx)测试,结果测试成功,xlsx包可以使用了。
    测试代码 / 顺序 如下:
> Sys.setenv(JAVA_HOME="F:\\Java\\Java_1\\jre_8u241") # 重设Jave_Home路径(需jre)
> library (rJava) # 顺序 ①
> library (xlsxjars) # 顺序 ②
> library (xlsx) # 顺序 ③
> 
> getwd() 
[1] "C:/Users/ASUS/Documents"
> setwd(dir="C:/Users/ASUS/Desktop/AD_TP/TP2") # 重设工作路径
> getwd()
[1] "C:/Users/ASUS/Desktop/AD_TP/TP2"
>
> data(iris)
> write.xlsx(iris, file="fichier_iris.xlsx", sheetName="donnees_iris") # 建表格存数据

生成的文件如下:
文件名为:fichier_iris.xlsx,工作表名为:donnees_iris

测试用例:

文件名:script_stat.R
大家可以copy一下,自己回去练练手

library (FactoMineR)

library (ggplot2)
library (factoextra)

Sys.setenv(JAVA_HOME="F:\\Java\\Java_1\\jre_8u241")
library (rJava)
library (xlsxjars)
library (xlsx)

getwd()
setwd(dir="C:/Users/ASUS/Desktop/AD_TP/TP2")
getwd()

data(iris)
write.xlsx(iris, file="fichier_iris.xlsx", sheetName="donnees_iris")

corr=round(cor(iris[,1:4]),3) # round():四舍五入
write.xlsx(corr, file="correlations_iris.xlsx", sheetName="correlations_iris")

cov= round(cov(iris[,1:4]),3)
write.xlsx(cov, file="covariances_iris.xlsx", sheetName="covariances_iris")

moyenne=round(apply(iris[,1:4],MARGIN=2,FUN=mean),3) # 列均值,
write.xlsx(moyenne, file="moyennes_iris.xlsx", sheetName="moyennes_iris")

variance=round(apply(iris[,1:4],MARGIN=2,FUN=var),3)
write.xlsx(variance, file="variances_iris.xlsx", sheetName="donnees_iris")

centre_reduit=round(scale(iris[,1:4]),2)
write.xlsx(centre_reduit, file="centre_reduit_iris.xlsx", sheetName="donnees_centres_reuites_iris")

moyenne2=round(apply(centre_reduit[,1:4],MARGIN=2,FUN=mean),3) # 列均值,
write.xlsx(moyenne2, file="moyennes_centre_reduit_iris.xlsx", sheetName="moyennes_iris")

variance2=round(apply(iris[,1:4],MARGIN=2,FUN=mean),3)
write.xlsx(variance2, file="variances_centre_reduite_iris.xlsx", sheetName="donnees_iris")

res.PCA = PCA(iris[,1:4,], scale.unit = TRUE, ncp=4, graph=F)
plot.PCA(res.PCA, axes=c(1, 2), choix="var" , habillage=5)
fviz_eig(res.PCA)
fviz_pca_ind(res.PCA, select.ind = list(cos2 = 2))

参考:

  1. R语言导入xlsx包错误解决
  2. 解决R语言xlsx安装遇到加载rjava报错的问题
  3. 解决R语言xlsx安装遇到问题
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐