Read.fwf Ошибка сканирования (файла): в строке 1 не было элементов x - PullRequest
0 голосов
/ 15 апреля 2019

Я импортирую набор данных с фиксированными записями из Бюро переписей и получаю ошибку в файле сканирования. Я знаю, что этот вопрос задавался ранее, но, похоже, ни один из ответов здесь не применим.

Итак, позвольте мне начать с деталей:

  • Длина записи 968 символов
  • заголовка нет
  • нет комментариев
  • запись полностью ограничена фиксированной шириной

Итак, вот код R для загрузки набора данных.

library(downloader)
download("http://thedataweb.rm.census.gov/pub/cps/supps/nov16pub.zip", dest="dataset.zip", mode="wb")
unzip("dataset.zip")

После распаковки zip-файла у вас остается файл .dat с именем "nov16pub.dat". Это рекорд 968 символов. Здесь около 152 тысяч записей.

Поэтому я пытаюсь загрузить это, используя следующий код:

census_data2 <- read.fwf("nov16pub.dat", 
                        widths <- c(15, 2, 4, 5, 2, 64, 2, 27, 2, 1, 2, 2, 2, 2, 4, 2, 2, 22, 3, 3, 3, 2, 777, 2, 2, 2, 2, 2, 8), 
                        header = FALSE, 
                        skip = 0,
                        comment.char="",
                        sep = "", 
                        col_names <- c("HRHHID", "HRMONTH", "HRYEAR4", "Skip1", "HUSPNISH", "Skip2", "GESTFIPS", "Skip3", "PRTAGE", "Skip4", "PEMARITL", "Skip5", "PESEX", "PEAFEVER", "Skip6", "PEEDUCA", "PTDTRACE", "Skip7", "PENATVTY", "PEMNTVTY", "PEFNTVTY", "PRCITSHP", "Skip8", "PES1", "PES2", "Skip9", "PES4", "PES5", "Skip10"))

Теперь я получаю сообщение об ошибке:

Ошибка сканирования (файл = файл, что = что, sep = sep, цитата = цитата, dec = dec,: в строке 1 не было 181 элементов

Я не понимаю, почему R пытается найти 181 элемент. У меня только 29 столбцов, каждый с именем.

Я успешно обошел проблему, открыв ее в Excel, используя одинаковую ширину (ну, в Excel вам нужны старты, например: Вектор ширины: 0, 15, 17, 21, 26, 28, 92, 94, 121, 123, 124, 126, 128, 130, 132, 136, 138, 140, 162, 165, 168, 171, 173, 950, 952, 954, 956, 958, 960. Этот вектор позволяет импортировать в Excel.

Я сохранил его как .csv и пошел дальше.

НО ПОЧЕМУ 181 ЭЛЕМЕНТОВ? О чем это все?

...