在 R 中导入 CSV 的字符串列中使用#(井号标签)的问题

Problems using # (hashtag) in string columns importing CSV in R

我在 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 样式生成。 IT 意味着字符串字段仅在必要时用引号引起来(例如,当字符串本身包含引号字符时)。没有办法改变这一点。所以我必须处理R端的#。

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 文件更有意义。