将“mutate_at()”与“as.Date()”一起使用

Jak*_*ake 1 r dplyr

我试图使用mutate_at()fromdplyr将类似日期的列强制转换为Dateusing类型的列as.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"))
Run Code Online (Sandbox Code Playgroud)

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

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

zac*_*dav 6

我个人更喜欢使用这样的语法:.here 指的是需要传递给函数的列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")))
Run Code Online (Sandbox Code Playgroud)

  • 从 `dplyr 0.8.0` 开始,`funs()` 被软弃用 - 可以改为:`mutate_at(vars(date_1, date_2), as.Date, format = "%m/%d/%Y")` (5认同)