【发布时间】:2016-04-28 07:04:44
【问题描述】:
如果您是 Mac 用户并运行以下代码,您将获得一个包含 173,962 行的数据框。如果您是 Windows 用户,您的数据集将只有 8,999 行。谁能告诉我为什么?我怎样才能在我的 PC 上将数据读入 R?
这是我的数据:.txt file
d<-read.table("Stream4_1.13.16t.txt", sep="", skip=10, quote = "", fill=T, header=F)
我正在处理由独特且不常见的软件(无源集成转发器系统,PIT)创建的检测数据,该软件有时会“打乱”一行数据并产生类似于 Wingdings 字体中的奇怪字符。我的文件是空格分隔的文本文件。我有一种预感,这些字符可能会导致读取问题,但为什么 Mac 会有所不同?
为了检查是否需要更改编码,我运行了以下命令:
d<-read.table("Stream4_1.13.16t.txt", sep="", fileEncoding="UTF-8", skip=10, quote = "", fill=T, header=F)
d<-read.table("Stream4_1.13.16t.txt", sep="", fileEncoding="latin1", skip=10, quote = "", fill=T, header=F)
得到了这个:警告信息: 在 scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 在输入连接“Stream4_1.13.16t.txt”上发现无效输入
【问题讨论】:
-
?read.table中的“注释”部分讨论了文本文件编码和操作系统之间的交互。也许值得一看;我自己也不知道答案。 -
谢谢,弗兰克。我玩了一下编码,但在那里找不到解决方案。
-
我记得我曾经遇到过类似的问题,它与使用参数“wb”打开文件以二进制模式写入有关。请参阅连接文档 (?connections)。
-
我认为你应该先用参数 open"=wb" 打开与文件的连接,然后将该对象传递给 read.table 让我知道它是否有效
-
你应该在 windows 中这样做