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