首页 > 解决方案 > 在 R 中导入 CSV 的字符串列中使用 #(井号标签)时出现问题

问题描述

#我在 CSV 文件的一些字符串字段中有主题标签 ( )。看起来R有问题。

csv = "A;B;C
n;# 9;0
n;1;0"

read.table(text=csv, header=TRUE, sep=";", encoding="UTF-8")

结果是

Fehler in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
  line 1 did not have 3 elements

CSV 文件由 Python 使用csv,QUOTE_MINIMAL样式生成。这意味着字符串字段仅在必要时用引号括起来(例如,当字符串本身包含引号字符时)。没有办法改变这一点。所以我必须处理R端的#。

标签: rcsvimport-from-csv

解决方案


read.table默认情况下将哈希视为注释。更改comment.char为任何其他值以更改它。

read.table(text=csv, header=TRUE, sep=";", encoding="UTF-8", comment.char = '@')

#  A   B C
#1 n # 9 0
#2 n   1 0

这就是为什么你应该使用read.csv()而不是read.table(). 第一个是后者,但默认值对 CSV 文件更有意义。


推荐阅读