如何在R中正确安装XLConnect包及解决相关报错问题
首先得说,你遇到的两个invalid argument to unary operator错误,其实是脚本里的低级语法问题——你不小心在library('openxlsx')和getwd()前面多写了一个减号-!
减号是用来做数值运算的一元运算符,R会把-library(...)当成要对library()的返回值做减法,这完全不符合语法,自然报错。而你在控制台直接输入getwd()能正常运行,就是因为控制台里你没加那个多余的减号。修正后的正确代码应该是:
# 加载openxlsx包 library('openxlsx') # 查看当前工作目录 getwd()
关于XLConnect安装后无法加载的问题
你看到安装成功的提示,但加载时提示包不存在,可能有这几个原因,你可以逐一排查:
检查包是否真的装到了当前用的R版本里
运行这段代码,看看已安装的包列表里有没有XLConnect:installed.packages()[,"Package"]另外用
.libPaths()查看R的包安装路径,去文件夹里确认XLConnect的文件夹是否存在。确认RStudio用的是你装包的那个R版本
你同时装了32位和64位R,RStudio可能默认切换到了另一个版本。你可以通过顶部菜单栏的Tools > Global Options > General查看当前使用的R版本,确保和你安装XLConnect时用的版本一致。老版本R的兼容性问题
你用的R 3.4.3是2017年的旧版本,XLConnect的新版本可能已经不再支持这么老的R了。你可以试试安装适配旧版R的XLConnect版本:# 先装devtools工具包 install.packages("devtools") library(devtools) # 安装适配R3.4.x的XLConnect旧版本 install_version("XLConnect", version = "0.2-15", repos = "http://cran.us.r-project.org")权限问题导致安装路径异常
有时候Windows的权限会让包装到了非默认路径,你可以手动指定路径安装并加载:# 用第一个默认路径安装 install.packages("XLConnect", lib = .libPaths()[1]) # 指定路径加载 library(XLConnect, lib.loc = .libPaths()[1])
更省心的替代方案:用openxlsx处理xlsx文件
其实openxlsx是比XLConnect更轻量的选择,它不需要依赖Java,修正语法错误后应该就能正常使用。推荐你优先试试这个:
install.packages("openxlsx") library(openxlsx) # 读取你的xlsx文件 my_data <- read.xlsx("你的文件路径.xlsx")
内容的提问来源于stack exchange,提问作者Esssse

