如何在R中正确读取格式异常的xls文件?
解决方案
针对你遇到的伪装成xls的文本文件读取问题,可按以下步骤处理:
先排查文件原始结构
先用readLines查看文件前20行内容,确认数据起始位置、分隔符规则:raw_lines <- readLines("D:/Usuario/pivo1/table.xls", n = 20) print(raw_lines)从输出里能明确:目标数据是否从第9行开始、每行的分隔符是否确实是
;、是否有表头行等关键信息。精准读取有效数据
根据上面的排查结果,用文本读取函数跳过无效行,指定正确参数:# 假设目标数据从第9行开始,无表头,分隔符为; data <- read.table("D:/Usuario/pivo1/table.xls", sep = ";", skip = 8, # 跳过前8行无效内容 header = FALSE, stringsAsFactors = FALSE)如果文件符合欧洲CSV格式(分号分隔),也可以用
read.csv2简化:data <- read.csv2("D:/Usuario/pivo1/table.xls", skip = 8, header = FALSE)解析日期时间数据
读取后若日期时间是合并字符串,用lubridate包解析:library(lubridate) # 根据实际日期格式调整函数,比如dmy_hms、mdy_hms等 data$datetime <- dmy_hms(data[, 1])
问题根源说明
你的文件扩展名是.xls,但实际是纯文本格式(而非二进制Excel文件),所以readxl、xlsx等专门读取Excel二进制文件的包无法识别,只能用文本类读取函数处理。
内容的提问来源于stack exchange,提问作者Matheus Westphalen
相关产品推荐
相关产品推荐

