使用readxl导入Excel时出现rlang_is_atomic未找到错误求助
解决read_excel导入Excel时的
rlang_is_atomic未找到错误 从你提供的错误信息和session信息来看,问题的核心是版本兼容性冲突:
- 你的R版本是3.4.2(2017年发布的旧版本),而当前加载的
rlang是开发版0.2.0.9001,这个版本和你的旧R、以及readxl 1.0.0之间存在不兼容,导致readxl需要调用的内部函数rlang_is_atomic无法被找到。 - 你之前尝试重装
rlang但没解决,大概率是因为重装时还是自动安装了不兼容的新版本,没有匹配你的R版本。
下面是具体的解决步骤:
步骤1:卸载当前的rlang版本
先彻底移除不兼容的开发版rlang:
remove.packages("rlang")
步骤2:安装与R 3.4.2兼容的rlang稳定版
由于R 3.4.x不支持最新版的rlang,我们需要安装适配该版本的旧稳定版(推荐rlang 0.1.6):
- 如果已经安装了
devtools,直接指定版本安装:
library(devtools) install_version("rlang", version = "0.1.6", repos = "http://cran.us.r-project.org")
- 如果没有
devtools,先安装兼容的devtools版本:
install.packages("devtools", repos = "http://cran.us.r-project.org")
然后再执行上面的install_version命令。
步骤3:重启R并重新导入文件
关闭并重新打开R,然后运行:
library(readxl) df <- read_excel("~/sample.xlsx")
备选方案(无需调整rlang版本)
如果不想折腾包版本,也可以用R基础包直接读取CSV文件(你之前转存的sample.csv):
df <- read.table("~/sample.csv", header = TRUE, sep = ",", stringsAsFactors = FALSE)
这个方法绕开了readxl和rlang的兼容性问题,适合快速解决需求。
内容的提问来源于stack exchange,提问作者Krantz
相关产品推荐
相关产品推荐

