Недавно я столкнулся с проблемой, когда у нас был файл фиксированной ширины. Например -
Name Income
John $10,000
Mary $15,000
Walter $25,000
Как читать файлы с фиксированной шириной, используя только имена столбцов?
Недавно я столкнулся с проблемой, когда у нас был файл фиксированной ширины. Например -
Name Income
John $10,000
Mary $15,000
Walter $25,000
Как читать файлы с фиксированной шириной, используя только имена столбцов?
Чтобы решить эту проблему, я наткнулся на readr
функцию read_fwf()
, которая принимает имя файла в качестве аргумента и другой аргумент fwf_empty()
, указывающий, будет ли ширина исправления угадываться или нет.
Скажем, имя моего файла fixed_width_file.csv
, и у меня миллион строк. Я бы прочитал файл, просто используя имена столбцов.
library(readr)
read_fwf("fixed_width_file.csv",
fwf_empty("fixed_width_file.csv",
col_names = c("Name", "Income")),
skip = 1)
Убедитесь, что столбцы выровнены, посмотрев на заголовок файла data.frame
.
Я обновлю ответ, когда узнаю больше.
fwf_empty
будет искать постоянную ширину, это даст плохие результаты, если не будет согласованной ширины. Если вам нужно прочитать файл с разделителями, где вы не знаете разделитель,data.table::fread
обычно хорошо угадывает. - person Gregor Thomas   schedule 06.04.2019data.table::fread
это очень круто. Но моя проблема не была решена с его помощью. Поэтому я немного исследовал этот фронт. - person Slayer   schedule 06.04.2019