使用Haven导入SAS文件报错、sas7bdat包与R版本不兼容求助
R导入SAS sas7bdat格式文件问题解决方案
问题1:Haven包解析报错
报错内容:Failed to parse C:/Users/mtmol/Desktop/Wk1_Data.sas7bdat: Invalid file, or file has unsupported features.
对应解决方案:
- 首先更新Haven包至最新正式版,旧版本对高版本SAS生成的压缩文件、自定义变量格式的支持存在缺陷,更新命令:
install.packages("haven", dependencies = TRUE)
更新完成后重新执行导入命令测试:haven::read_sas("C:/Users/mtmol/Desktop/Wk1_Data.sas7bdat") - 若更新后仍报错,可尝试匹配文件生成时的编码传入encoding参数,常见可测试编码包括
LATIN1、GBK、UTF-8,示例命令:haven::read_sas("C:/Users/mtmol/Desktop/Wk1_Data.sas7bdat", encoding = "LATIN1") - 若上述方法均无效,可借助已能正常打开文件的Stata做格式中转:在Stata中打开文件后导出为csv格式,再用R的
read.csv()导入,或导出为Stata 13及以下版本的dta格式,用haven::read_dta()导入,中转方案兼容性最高。
问题2:sas7bdat包安装报错
报错内容:package ‘sas7dbat’ is not available for this version of R
对应解决方案:
- 首先修正包名拼写错误:你输入的包名
sas7dbat拼写错误,正确包名为sas7bdat,修正后执行安装命令:install.packages("sas7bdat") - 若修正拼写后仍提示不可用,可先切换CRAN镜像为国内源后重新安装,安装完成后导入命令参考:
library(sas7bdat) mydata <- read.sas7bdat("C:/Users/mtmol/Desktop/Wk1_Data.sas7bdat")
- 若
sas7bdat包仍无法适配你的R版本,可使用替代包sas7bdat.parso,该包兼容性更强,安装命令:install.packages("sas7bdat.parso")
导入命令参考:mydata <- sas7bdat.parso::read_sas7bdat("C:/Users/mtmol/Desktop/Wk1_Data.sas7bdat")
内容的提问来源于stack exchange,提问作者Mari Tere Molinet
相关产品推荐
相关产品推荐

