2

我正在将不可预测的字符集字符串放入表中,并带有预期的列数。我在选择合适的分隔符时遇到了麻烦。

例如,示例表可能如下所示:

文件名:foo.txt

分隔符:“\u00AA”

ROW1,COL1: 富

ROW1,COL2: b,ar

ROW1,COL3: fo;obar

第 1 行,第 4 行:bo\tt

上。

在 RI 会给

read.table('foo.txt', sep="\u00AA")

并得到

无效的“sep”值:必须是一个字节

我应该使用什么分隔符来避免与不可预测的字符串发生冲突?Unicode 被接受到 \u007F,但 R 将任何更高的内容解释为多字节。为什么?

4

2 回答 2

2

弄清楚了。感谢您的启发。

关键是设置comment.char=""和quote=""

例如,

read.table('foo', sep="\t", quote="", comment.char="")

返回正确的data.frame。

于 2013-06-20T21:39:12.610 回答
0

调试输入问题的方法是先运行table(count.fields( 'file.nam'))然后oddities <- which(count.fields('file.nam') %in% odd_counts)查看readLines('fil.nam')[oddities]版本或使用 sed 查看有问题的行。通常问题是注释字符,默认情况下是“#”,在这些情况下的解决方案是comment.char=""read.delim(.)调用中使用。

于 2013-06-20T21:39:56.253 回答