R导入字符串列含#号的CSV文件时报错如何解决?
问题根因
R 基础包的read.table函数默认将#字符作为注释内容的起始标记,读取时会自动丢弃#之后同属一行的所有内容。你提供的示例数据中第二行n;# 9;0解析时被截断为n;,仅得到2个字段,和表头定义的3个字段数量不一致,因此触发字段数不匹配的报错。
修复方案
调用read.table时显式指定comment.char = "",关闭注释识别逻辑即可正常解析含#的字段内容,修改后的代码如下:
csv = "A;B;C n;# 9;0 n;1;0" read.table(text=csv, header=TRUE, sep=";", encoding="UTF-8", comment.char = "")
运行后正常输出结果:
A B C 1 n # 9 0 2 n 1 0
如果是读取本地的CSV文件,只需将text参数替换为你的本地文件路径,同样加上comment.char = ""配置即可。
内容的提问来源于stack exchange,提问作者buhtz
相关产品推荐
相关产品推荐

