【发布时间】:2020-04-03 10:44:41
【问题描述】:
我有一个包含医疗数据的大型数据框 (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 新手,但我怀疑有一种更简单的方法可以做到这一点(例如直接处理原始数据帧),或者可能是加入/合并两个数据帧的正确方法。
【问题讨论】:
标签: r dplyr tidyverse lubridate