r语言 - read.fwf 不会读取固定宽度文件中的所有行



我正在尝试使用read.fwf命令从固定宽度的文件中提取数据。但不幸的是,此代码不会读取所有行。它从最后一行中删除几行并显示警告。该文件有 5,13,366 行,但读取仅 4,90,000 行。如何阅读所有行?任何帮助将不胜感激。

library(readr)
L4 <- read.fwf("http://www.mospi.gov.in/sites/default/files/NSS75252E/R75252L04.TXT",
c(3,
5,
2,
3,
1,
1,
3,
2,
2,
2,
1,
1,
4,
1,
1,
2,
2,
3,
2,
1,
1,
3,
1,
2,
2,
2,
2,
1,
1,
1,
1,
1,
1,
1,
64,
3,
3,
10
), 
skip=0, 
colClasses = "character", # To convert into character
col.names=c("a1",
"a2",
"a3",
"a4",
"a5",
"a6",
"a7",
"a8",
"a9",
"a10",
"a11",
"a12",
"a13",
"a14",
"a15",
"a16", # Upto now, from level 1
"d1",
"d2",
"d3",
"d4",
"d5",
"d6",
"d7",
"d8",
"d9",
"d10",
"d11",
"d12",
"d13",
"d14",
"d15",
"d16",
"d17",
"d18",
"d19",
"d20",
"d21",
"d22"
),                 
strip.white=TRUE)     

景观(L4(

我首先下载了文件,然后您的代码对我有用。我没有做library(readr),因为您似乎没有使用该软件包中的任何内容,那么为什么要包含它呢?

警告:

Warning message:
In readLines(file, n = thisblock) :
incomplete final line found on 'R75252L04.TXT'

这是因为在文件的最后一行之后没有最终的行尾标记。尽管如此,它还是可以正常阅读:

> L4[513366,]
a1    a2 a3  a4 a5 a6  a7 a8 a9 a10 a11 a12  a13 a14 a15 a16 d1  d2 d3
513366 005 17927 75 252  1  2 362 31 31  03   4   1 3613   1   4  02 04 000 04
d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21
513366  7  2 62  2 01 01               2   2   2       2           2   4
d22
513366 1004499

我总共阅读了所有行:

> dim(L4)
[1] 513366     38

尝试使用download.file获取文件并从中读取,而不是从 URL 读取。尽管当我尝试从httpURL 读取时,它对我有用。您是在检查使用像我这样的dim读取的行数,还是这只是View向您展示的内容?

最新更新