read.csv2中sep参数失效?CSV导入及引号处理问题
CSV导入列合并与引号去除解决方案
1. 解决列合并问题:正确导入文件
你的CSV用;做分隔符,但部分字段带双引号,read.csv2默认的引号处理逻辑可能导致分隔识别异常,试试显式指定参数确保列正确拆分:
# 显式设置引号规则和表头,确保列拆分正常 df <- read.csv2('hospital_finance_2008.csv', sep=';', check.names = FALSE, quote = '"', header = TRUE)
如果上述代码仍有问题,用read.table更灵活地控制导入逻辑:
df <- read.table('hospital_finance_2008.csv', sep=';', check.names = FALSE, quote = '"', header = TRUE, stringsAsFactors = FALSE)
2. 去除非首列的引号
导入后,除第一列外的字段可能还残留双引号,批量处理去除:
# 遍历除第一列外的所有列,移除双引号 df[, -1] <- lapply(df[, -1], function(x) gsub('"', '', x)) # 可选:将处理后的列转为数值类型 df[, -1] <- lapply(df[, -1], as.numeric)
完整代码示例
# 导入文件 df <- read.table('hospital_finance_2008.csv', sep=';', check.names = FALSE, quote = '"', header = TRUE, stringsAsFactors = FALSE) # 清理引号并转换数值类型 df[, -1] <- lapply(df[, -1], function(x) { gsub('"', '', x) %>% as.numeric() }) # 查看处理后的数据 head(df)
内容的提问来源于stack exchange,提问作者LLT
相关产品推荐
相关产品推荐

