如果您是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'上找到无效输入
答案 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)