Это похоже на файл данных фиксированной ширины.
Если вы прочитали первые 10 строк и посмотрите на длину:
library(readr)
con = file("nov18pub.dat", "r")
line = readLines(con, n = 10)
num_char <- nchar(line)
close(con)
num_char
[1] 1018 1018 1018 1018 1018 1018 1018 1018 1018 1018
, то это будет 1018 символов.
Вы можете использовать read.fwf
из пакета readr
для чтения в файле. В этом примере первые 5 столбцов считываются (а остальные игнорируются с использованием NULL
).
read.fwf("nov18pub.dat",
widths = c(15,2,4,2,3,rep(NULL, num_char - 26)),
header = FALSE,
col.names = c("Household_ID", "Month", "Year", "Line_Number", "Final_Outcome"),
colClasses = c("character", rep("numeric", 4))
)
Household_ID Month Year Line_Number Final_Outcome
1 000110118096587 11 2018 2 201
2 000110118096587 11 2018 2 201
3 710004140617571 11 2018 1 201
4 761077501690006 11 2018 1 201
5 761077501690006 11 2018 1 201
6 067091706007561 11 2018 1 201
7 067091706007561 11 2018 1 201
8 067091706007561 11 2018 1 201
9 067091706007561 11 2018 1 201
10 691715007600067 11 2018 2 201
...
В этом документе содержатся подробные сведения о ширине столбцов и кодах для каждой переменной:
https://www2.census.gov/programs-surveys/cps/techdocs/cpsnov18.pdf
Там также упоминается формат:
Структура: Rect angular.
Размер файла : 143 050 логических записей; Длина логической записи в 968 символов.
Однако при наличии дополнительных данных длина записи может составлять от go до 1018.