【问题标题】:R: change multiple select columns in a dataframe data type to date formatR:将数据框数据类型中的多个选择列更改为日期格式
【发布时间】:2022-02-16 16:16:10
【问题描述】:

我希望在数据框中将多个特定列的数据类型更改为 POSIXct 格式。我已经能够单独执行此操作 - 见下文。

他们的功能是通过列出感兴趣的列而不是重复代码行来重复这一点吗?当我尝试使用 lubridate 和 POSIXct 时,它限制我一次只能命名一列。

感谢您的任何指示/方向。非常感谢


study_ID <- c(5,6,7)
randomisation <- (c("2021-01-01 11:00", "2021-01-02 10:00", "2021-01-03 10:00"))
water_on <- (c("2021-01-01 13:00", "2021-01-02 09:00","2021-01-04 09:45"))
water_off <- (c("2021-01-01 18:00", "2021-01-02 18:00","2021-01-04 11:00"))
trial_A <- data.frame(study_ID, randomisation, water_on, water_off)
View(trial_A)

trial_A$randomisation <-as.POSIXct(trial_A$randomisation, format= "%Y-%m-%d %H:%M:%S")
tibble(trial_A)

trial_A_1 <- trial_A %>% mutate(water_on = ymd_hm(water_on))
tibble(trial_A_1)

【问题讨论】:

    标签: r dataframe parsing tidyverse lubridate


    【解决方案1】:

    您可以使用dplyr 包同时更改多个列。

    在你的情况下,你会使用类似的东西

    library(dplyr)
    
    trial_A_1 >%>
      mutate(across(c(randomization, water_on, water_off), ymd_hm))
    

    across 有两个组件。 第一个组件指定相关列。第二个组件包含您要应用的功能。

    对于这两个组件,您可以采用各种快捷方式。 更多详情请见help page

    【讨论】:

    • trial_A%>%mutate(across(c(randomisation, water_on, water_off), ymd_hm)) 非常感谢 - 解决了我的头疼问题。
    猜你喜欢
    • 1970-01-01
    • 2021-04-14
    • 2019-01-20
    • 2019-09-16
    • 2016-02-19
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多