包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)Javajre1.8.0_131inclient;"
- 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,一切正常。