R 读取xls/xlsx文件

readxl

install.packages('readxl',repois='https://mirrors.utsc.edu.cn/CRAN/)
library(readxl)
# read_excel()自动识别xls/xlsx
# read_xls()读取xls
# read_xlsx()读取xlsx
data <- read_xlsx("d:/data/ch01.xlsx",na="NA")

xlsx

依赖rJava,需要JAVA环境(JDK或JRE)

install.packages('xlsx',repois='https://mirrors.utsc.edu.cn/CRAN/)
library(xlsx)  #一般会报错
  • 一般地,如果Windows系统中已经安装了JDK或JRE,32位的用32位的R,64位的用64位的R,不会报错。
  • JRE的jvm.dll位于/bin/client文件夹中。JDK的位于/JRE/server文件夹中。有人建议将jvm.dll所在的文件夹加入系统路径,如下操作(本计算机中已经安装了JRE1.8.0_131(32位),jvm.dll位于"client"文件夹中):
    我的计算机-右键-高级系统设置-环境变量,编辑“系统变量”中的Path,在前面加入"C:\Program Files (x86)\Java\jre1.8.0_131\bin\client;"
  • JDK包含了JRE!
  • JDK(Java SE)下载地址:
    http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • JRE(Java SE Runtime Environment)下载
    https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

加载xlsx报错处理

  • 弹出"无法启动此程序,因为计算机中丢失 jvm.dll。尝试重新安装该程序以解决此问题。"
    是因为在R文件前加入了类似如下的语句
    Sys.setenv(JAVA_HOME='C:/Program Files (x86)/Java/jre1.8.0_131/bin')
  • "No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures"
    用了64为的R调用32位的JAVA!用32位的R,一切正常。

猜你喜欢

转载自www.cnblogs.com/ourweiguan/p/11687361.html