Как импортировать несколько текстовых файлов в R и добавить новый заголовок? - PullRequest
1 голос
/ 28 апреля 2020

У меня есть 8 текстовых файлов без сохраненных заголовков, моя цель - прочитать их все и объединить в один файл. Я также хочу добавить имена столбцов, но получаю сообщение об ошибке. Мой код до сих пор:

txt_files_ls = list.files(path=mypath, pattern="*.txt")


txt_files_df <- lapply(txt_files_ls, function(x) {read.table(file = x, header = F, sep ="\t",colnames(x))})


combined_df <- do.call("rbind", lapply(txt_files_df, as.data.frame)) 

colnames(combined_df)<-c("INSUR","POLICY","STREET","STREETPRED","STREETNAME","STREETTYPE","STREETPOSTD","STREETADD2","CITY","STATE","ZIP","ZIP4","EFFDATE","POLTYPE","PREM","FILL", "BVAMOUNT","Full","COUNT")

Я продолжаю получать эту ошибку: Ошибка в names (x) <- значение: атрибут 'names' [19] должен иметь ту же длину, что и вектор [1] </p>

Но я знаю, что это все столбцы, и они идентичны.

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

1 Ответ

0 голосов
/ 28 апреля 2020

Попробуйте это:

txt_files_ls <- paste(mypath, list.files(path = mypath, pattern = "*.txt"), sep = "/")
txt_files_df_list <- vector("list", length(txt_files_ls))
txt_files_df_list <- lapply(txt_files_ls, 
                       function(x){data.frame(read.table(file = x, header = F,
                                                         sep ="\t",colnames(x)))})
combined_df <- setNames(do.call("rbind", txt_files_df_list),
                        c("INSUR", "POLICY","STREET","STREETPRED","STREETNAME",
                          "STREETTYPE","STREETPOSTD","STREETADD2","CITY","STATE",
                          "ZIP","ZIP4","EFFDATE","POLTYPE","PREM","FILL", "BVAMOUNT",
                          "Full","COUNT")) 
...