首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >read.fwf不会读取固定宽度文件中的所有行

read.fwf不会读取固定宽度文件中的所有行
EN

Stack Overflow用户
提问于 2019-12-31 17:53:56
回答 1查看 92关注 0票数 0

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

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2019-12-31 18:08:25

我首先下载了这个文件,然后你的代码就可以为我工作了。我没有使用library(readr),因为您似乎没有使用该包中的任何内容,所以为什么要包含它呢?

警告:

代码语言:javascript
复制
Warning message:
In readLines(file, n = thisblock) :
  incomplete final line found on 'R75252L04.TXT'

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

代码语言:javascript
复制
> 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

总而言之,我读了所有行:

代码语言:javascript
复制
> dim(L4)
[1] 513366     38

尝试使用download.file获取文件并从中读取,而不是从URL读取。尽管当我尝试从http网址读取时,它对我来说是有效的。您是否像我一样使用dim检查读取的行数,或者这只是View向您显示的内容?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59542442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档