Как я могу объединить разреженные столбцы в славе данных?
У меня есть скрипт R, который создает фрейм данных с 61 столбцом. Data.frame создается путем чтения группы файлов csv в список data.frames, а затем слияния списка таким образом, что столбцы с общим именем в каждом data.frame в списке заполняют один и тот же столбец в результирующем data.frame.
Некоторые из столбцов, которые должны быть объединены, были непоследовательно названы в CSV-файлах (например, date.received vs receive.on.date vs date.sample.received), и мне было интересно, каков будет лучший подход к их объединению.
У меня была пара идей:
- переименуйте столбцы, прежде чем объединить их в списке.
- объедините столбцы, которые должны быть одинаковыми, когда у меня есть data.frame, так, чтобы использовался столбец, имеющий значение в этой строке
Возможен ли второй подход (и как?) или есть лучший способ?
1 ответ
Второй подход возможен, и он легко rbind_all
от dplyr
пакет. Вот как:
Прежде всего, если у вас есть некоторая информация о шаблоне имен столбцов, которые должны быть собраны вместе, я предлагаю вам попытаться исправить это перед укладкой, например:
colnames_synonymous <- c("date.received", "received.on.date", "date.sample.received")
list_of_dfs <- lapply(list_of_dfs, function(df) {
names(df)[names(df) %in% colnames_synonymous] <- "date_received"
return(df)
})
Теперь вы готовы идти
dplyr::rbind_all(list_of_dfs)
Возможно, вам придется внести некоторые коррективы, прежде чем все столбцы будут правильно сложены, но теперь все, что вам нужно сделать, - это изменить функцию lapply. Я считаю этот способ проще, чем сделать некоторые преобразования столбцов после rbinding.