R read.table()来自pc vs mac

时间:2016-01-21 20:39:45

标签: r windows macos

如果您是Mac用户并且运行下面的代码,您将获得一个包含173,962行的数据框。如果您是Windows用户,则数据集将只有8,999行。谁能告诉我为什么?如何在我的电脑上将数据读入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)

并得到了这个:警告信息: 在扫描(文件,什么,nmax,sep,dec,quote,skip,nlines,na.strings,:   在输入连接'Stream4_1.13.16t.txt'上找到无效输入

2 个答案:

答案 0 :(得分:0)

老实说,我不知道答案(尽管我的建议可能有价值)并且我只使用答案框,因为这个评论太大而且需要格式化容量。 (我是SO的受访者,他告诉你这个文件很容易在Mac上阅读。)这是该文件的顶部(使用你之前提问的下载数据):

&str

尝试使用read.table读取此文件是一个注定的希望。对于以&#34; D&#34;开头的行,它是固定宽度格式。哪些是有数据的。一个更明智的方法(一旦你弄清楚编码和字体混淆)将使用=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2016.01.13 16:42:02 =~=~=~=~=~=~=~=~=~=~=~= u uh NEW 2016-01-08 16:27:25.52 171953 Total 171953 >up Upload #1 Reader: S4 Site: AA --------- upload 1 start --------- E 2024-01-13 15:30:52.11 reader not responding D 2016-01-08 16:27:34.83 00:00:00.38 HA 900_226000745066 A2 4 77 D 2016-01-08 16:27:34.41 00:00:00.00 HA 900_226000745066 A4 1 218 D 2016-01-08 16:27:34.59 00:00:00.62 HA 900_226000745066 A4 6 1 D 2016-01-08 16:27:34.41 00:00:00.00 HA 900_226000745066 A2 1 35 D 2016-01-08 16:27:34.59 00:00:00.62 HA 900_226000745066 A2 6 1 # snipped a bunch of lines D 2016-01-08 16:29:26.86 00:00:00.86 HA 900_226000745060 A2 8 85 D 2016-01-08 16:29:28.21 00:00:00.32 HA 900_226000745060 A2 4 3 D 2016-01-08 16:29:28.70 00:00:00.12 HA 900_226000745060 A2 2 1 E 2016-01-08 16:36:00.00 date/time changed. Was 2016-01-08 16:29:37.80 D 2016-01-08 16:36:06.95 00:00:00.26 HA 900_226000745018 A2 3 136 D 2016-01-08 16:36:07.63 00:00:00.12 HA 900_226000745060 A2 2 3 D 2016-01-08 16:36:09.41 00:00:00.25 HA 900_226000745060 A2 3 13 D 2016-01-08 16:36:17.41 00:00:00.48 HA 900_226000745060 A2 5 65 D 2016-01-08 22:09:05.68 00:00:00.00 HA 00000 0 900 226000745000 2260007450?0 A4 1 0 D 2016-01-10 18:16:56.61 00:00:00.00 HA 00000 0 900 22600070 900 2260007450;1 A4 1 1 D 2016-01-08 16:36:30.62 00:00:00.19 HA 900_226000745060 A2 3 7 D 2016-01-08 16:36:31.04 00:00:00.31 HA 900_226000745060 A2 4 1 D 2016-01-08 16:36:33.02 00:00:00.12 HA 900_226000745066 A2 2 13 D 2016-01-08 16:36:41.07 00:00:00.13 HA 900_226000745066 A2 2 65 D 2016-01-10 15:38:39.74 00:00:00.00 HA 00000 0 900 22600074 900 2260007450?6 A2 1 1 D 2016-01-08 16:36:42.19 00:00:00.00 HA 900_226000745066 A2 1 1 D 2016-01-08 16:36:54.03 00:00:00.73 HA 900_226000745060 A2 7 101 D 2016-01-08 16:36:55.14 00:00:00.24 HA 900_226000745060 A2 3 2 D 2016-01-08 16:36:55.56 00:00:00.00 HA 900_226000745060 A2 1 1 D 2016-01-08 16:36:57.96 00:00:00.00 HA 900_226000745060 A2 1 19 来创建一个readLines,创建一个带有txt_obj的选择向量,然后使用read.fwf进行解析

答案 1 :(得分:0)

我收到了建议使用readr软件包的外部来源的帮助。 下面的代码可以工作并导入所有数据行。

library(readr)
d<-read_table("Stream4_1.13.16t.txt", col_names = F, na = "NA", skip = 10)