You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中导入非逗号分隔CSV文件并转换缺失值为NA

导入后错误格式的DataFrame
原始CSV文件内容

我尝试使用read.table()语法将CSV文件导入R中,但得到的data.frame是按逗号分隔的。如何调整才能使其呈现如下方图片所示的样式?同时如何将缺失值转换为NA?

期望的DataFrame样式

解决方法

1. 修正分隔符设置

从目标样式和原始CSV内容来看,数据实际是空格分隔,而非逗号分隔。调整read.table()的sep参数即可解决列拆分错误的问题:

# 读取空格分隔的CSV,同时读取表头
df <- read.table("你的文件路径.csv", header = TRUE, sep = " ")

如果数据里的分隔符是任意空白(比如多个空格、制表符混合),可以省略sep参数,用默认的sep = "",它会自动识别任意数量的空白字符作为分隔符:

df <- read.table("你的文件路径.csv", header = TRUE)

2. 转换缺失值为NA

通过na.strings参数指定需要转换为NA的字符,比如CSV中的空值、特定占位符都可以设置:

# 将空字符串转换为NA
df <- read.table("你的文件路径.csv", header = TRUE, sep = " ", na.strings = "")

# 如果缺失值用特定字符(如"?")表示,可同时指定多个值
df <- read.table("你的文件路径.csv", header = TRUE, sep = " ", na.strings = c("", "?"))

3. 额外优化建议

  • 若数据包含带引号的字符串字段,添加quote = "\""参数确保字段被正确识别
  • 如果是欧洲格式的CSV(逗号当小数分隔符、分号当列分隔符),可以用read.csv2()替代,但你的场景更适合read.table()

内容的提问来源于stack exchange,提问作者clover S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 12:47:08