Как связать строки в R так, чтобы вместо ошибки преобразования типов по умолчанию использовалось заполнение значения NA? - PullRequest
0 голосов
/ 15 января 2019

В настоящее время мне поручено объединить несколько файлов xlsx в один файл данных master R (.rds). Поскольку эти файлы заполняются вручную, при использовании таких подходов, как dyplr :: bind_rows, таких как

, возникает много ошибок преобразования типов.

Column ``XYZ`` can't be converted from numeric to character

Хотя мне очень нужно, чтобы привязка была «умной», чтобы она происходила в соответствии с именами соответствующих столбцов объединяемых фреймов данных - при возникновении проблем преобразования вместо получения ошибки, я бы хотела иметь эти проблемные ячейки содержимое обрабатывается как NA и не выдает ошибку - возможно, только предупреждение.

Есть ли удобный способ / функция для этого в R?

Я использовал bind_rows из пакета dyplr.

Моя текущая процедура импорта

files  <- list.files("data",pattern = "xlsx", full.names = TRUE)

tmp <- read_excel(files[1], sheet = "data", trim_ws = TRUE)
names(tmp) <- make.names(str_squish(names(tmp)))

for (i in 2:length(files)) {
  print(i)
  tmp2 <- read_excel(files[i], sheet = "data",trim_ws = TRUE)
  names(tmp2) <- make.names(str_squish(names(tmp2)))

  tmp<-bind_rows(tmp,tmp2)
}

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

...