У меня есть большой фрейм данных, содержащий медицинские данные (my.medical.data
).
В ряде столбцов содержатся даты (например, дата госпитализации), имена каждого из этих столбцов заканчиваются на "_date".
Я хотел бы применить функцию lubridate::dmy()
к столбцам, содержащим даты, и перезаписать мой исходный кадр данных с помощью вывода этой функции.
Было бы замечательно иметь общее решение, которое может быть применено с использованием любой функции, а не только мой dmy()
пример.
По сути, я хочу применить следующее ко всем моим столбцам дат:
my.medical.data$admission_date <- lubridate::dmy(my.medical.data$admission_date)
my.medical.data$operation_date <- lubridate::dmy(my.medical.data$operation_date)
etc.
Я пробовал это:
date.columns <- select(ICB, ends_with("_date"))
date.names <- names(date.columns)
date.columns <- transmute_at(my.medical.data, date.names, lubridate::dmy)
Теперь date.columns
содержит мои столбцы даты в формате «Дата», а не исходные факторы. Теперь я хочу заменить столбцы даты в my.medical.data
новыми столбцами в правильном формате.
my.medical.data.new <- full_join(x = my.medical.data, y = date.columns)
Теперь я получаю:
Ошибка: невозможно присоединить объект Date с объектом, который не является объектом Date
Я немного новичок в R, но подозреваю, что есть более простой способ сделать это (например, обработать исходный кадр данных напрямую), или возможно правильный способ объединить / объединить два кадра данных.