匯入固定寬度的檔案
固定寬度檔案是文字檔案,其中列不由任何字元分隔符分隔,如 ,
或 ;
,而是具有固定的字元長度( 寬度 )。資料通常用空格填充。
一個例子:
Column1 Column2 Column3 Column4Column5
1647 pi 'important' 3.141596.28318
1731 euler 'quite important' 2.718285.43656
1979 answer 'The Answer.' 42 42
假設該資料表存在於工作目錄中的本地檔案 constants.txt
中。
使用基礎 R 匯入
df <- read.fwf('constants.txt', widths = c(8,10,18,7,8), header = FALSE, skip = 1)
df
#> V1 V2 V3 V4 V5
#> 1 1647 pi 'important' 3.14159 6.28318
#> 2 1731 euler 'quite important' 2.71828 5.43656
#> 3 1979 answer 'The Answer.' 42 42.0000
注意:
- 列標題不需要用字元分隔(
Column4Column5
) widths
引數定義每列的寬度read.fwf()
無法讀取未分隔的標題
使用 readr 匯入
library(readr)
df <- read_fwf('constants.txt',
fwf_cols(Year = 8, Name = 10, Importance = 18, Value = 7, Doubled = 8),
skip = 1)
df
#> # A tibble: 3 x 5
#> Year Name Importance Value Doubled
#> <int> <chr> <chr> <dbl> <dbl>
#> 1 1647 pi 'important' 3.14159 6.28318
#> 2 1731 euler 'quite important' 2.71828 5.43656
#> 3 1979 answer 'The Answer.' 42.00000 42.00000
注意:
- readr 的
fwf_*
輔助函式提供了指定列長度的替代方法,包括自動猜測(fwf_empty
) - readr 比 base R 快
- 無法從資料檔案中自動匯入列標題