【问题标题】:Using `mutate_at()` with `as.Date()`将 `mutate_at()` 与 `as.Date()` 一起使用
【发布时间】:2018-05-25 01:08:51
【问题描述】:

我正在尝试使用dplyr 中的mutate_at() 将类似日期的列强制转换为使用as.Date() 类型的Date 列,但出现错误。代码如下:

library(dplyr)

df = data.frame(date_1 = "7/5/2014", date_2 = "7/22/2011")
df %>%
    mutate_at(.vars = c("date_1", "date_2"), .funs = as.Date("%m/%d/%Y"))

这给了我一个错误:Error in charToDate(x): character string is not in a standard unambiguous format

不确定这里发生了什么,因此非常感谢您的帮助。我更喜欢dplyr 解决方案,但如果有更好的方法,我也愿意。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    我个人更喜欢这样使用语法: 这里的.指的是列,需要传递给as.Date函数。

    library(dplyr)
    df = data.frame(date_1 = "7/5/2014", date_2 = "7/22/2011")
    df %>%
      mutate_at(vars(date_1, date_2), funs(as.Date(., "%m/%d/%Y")))
    

    【讨论】:

    • funs()dplyr 0.8.0 开始被软性弃用 - 可以改为:mutate_at(vars(date_1, date_2), as.Date, format = "%m/%d/%Y")
    • 能否请您更新到当前使用 list() 的 tidyverse 语法?
    猜你喜欢
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 2020-01-27
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多