【问题标题】:Read ASCII, fixed-length fields/records with two record-delimiters使用两个记录分隔符读取 ASCII、固定长度字段/记录
【发布时间】:2020-06-05 20:23:31
【问题描述】:

很抱歉,如果这太宽泛了,但我正在努力加载存档的人口普查县商业模式数据。文件格式描述为,

“ASCII,固定长度的字段/记录,带有两个记录分隔符(回车和换行);记录长度包括分隔符。”

我尝试将其加载到 excel、R 和 Stata 中。我只是想以可读格式获取文件,以便以后可以使用。我尝试使用 read.fwf 将它读入 R,但我真的不清楚我应该使用什么宽度。我不太了解文件类型。我对 ASCII 文件不太熟悉,文件后缀并没有给我太多信息。任何建议将不胜感激。我在下面提供了我正在尝试使用的一组文件的链接。

https://catalog.archives.gov/id/873805

【问题讨论】:

    标签: r excel ascii stata census


    【解决方案1】:

    有些行的数据不好,所以我推荐 read_delim 包中的 readr

    library(readr)
    data <- read_delim("https://catalog.archives.gov/OpaAPI/media/873805/content/arcmedia/electronic-records/rg-029/cbp-files/RG029.CBP85.T2I1?download=true",
                       delim = " ", col_names = FALSE)
    data
    ## A tibble: 32,970 x 6
    #      X1 X2    X3                                                                                                                   #X4    X5 X6    
    #   <dbl> <chr> <chr>                                                                                                             #<dbl> <dbl> <chr> 
    # 1 11001 ----  " 00000003482800000011566200000049404800248400140400048300029200018300006600003400001600000500000100000100000000… 11000 23001 " 424…
    # 2 11001 07--  "B00000000000000000000000000000000000000001700001200000300000100000100000000000000000000000000000000000000000000… 11000 23001 " 424…
    # 3 11001 0700  "B00000000000000000000000000000000000000001500001000000300000100000100000000000000000000000000000000000000000000… 11000 23001 " 424…
    # 4 11001 0720  "B00000000000000000000000000000000000000000200000000000000000100000100000000000000000000000000000000000000000000… 11000 23001 " 424…
    # 5 11001 0740  " 00000000001900000000003500000000019100000500000300000200000000000000000000000000000000000000000000000000000000… 11000 23001 " 424…
    # 6 11001 0750  "A00000000000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000… 11000 23001 " 424…
    # 7 11001 0780  " 00000000001200000000002700000000035100000600000500000100000000000000000000000000000000000000000000000000000000… 11000 23001 " 424…
    # 8 11001 0800  "A00000000000000000000000000000000000000000200000200000000000000000000000000000000000000000000000000000000000000… 11000 23001 " 424…
    # 9 11001 10--  "A00000000000000000000000000000000000000000200000100000000000100000000000000000000000000000000000000000000000000… 11000 23001 " 424…
    #10 11001 1400  "A00000000000000000000000000000000000000000200000100000000000100000000000000000000000000000000000000000000000000… 11000 23001 " 424…
    ## … with 32,960 more rows
    

    【讨论】:

      【解决方案2】:

      我们可以在base R 中使用read.tablefill = TRUE

      data <- read.table("https://catalog.archives.gov/OpaAPI/media/873805/content/arcmedia/electronic-records/rg-029/cbp-files/RG029.CBP85.T2I1?download=true", fill = TRUE)
      

      -输出

      str(data)
      #data.frame':   32970 obs. of  6 variables:
      # $ V1: int  11001 11001 11001 11001 11001 11001 11001 11001 11001 11001 ...
      # $ V2: chr  "----" "07--" "0700" "0720" ...
      # $ V3: chr  "000000034828000000115662000000494048002484001404000483000292000183000066000034000016000005000001000001000000000000000000" "B000000000000000000000000000000000000000017000012000003000001000001000000000000000000000000000000000000000000000000000000" "B000000000000000000000000000000000000000015000010000003000001000001000000000000000000000000000000000000000000000000000000" "B000000000000000000000000000000000000000002000000000000000001000001000000000000000000000000000000000000000000000000000000" ...
      # $ V4: int  11000 11000 11000 11000 11000 11000 11000 11000 11000 11000 ...
      # $ V5: int  23001 23001 23001 23001 23001 23001 23001 23001 23001 23001 ...
      # $ V6: int  4243 4243 4243 4243 4243 4243 4243 4243 4243 4243 ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-29
        • 1970-01-01
        • 2013-08-01
        • 1970-01-01
        • 2016-10-05
        • 1970-01-01
        • 2011-03-13
        • 1970-01-01
        相关资源
        最近更新 更多