【发布时间】:2020-07-05 16:46:47
【问题描述】:
我有以下代码将所有以“DT”开头的列更改为Date格式,mutate_at从dplyr
date_cols <- str_subset(names(df),'^DT')
df <- df %>%
mutate_at(
.vars= date_cols,
.funs=list(~ as.Date(.,format = "%d%m%Y"))
)
为了使用 data.table 做同样的事情,我编写了以下代码(有效)
date_cols <- str_subset(names(df),'^DT')
for (column in date_cols) {
df[,(column) := as.Date(df[[..column]],format = "%d%m%Y")]
}
问题是data.table 中是否没有等效的mutate_at 可以避免显式的for 循环? (不是真正的问题,只是好奇)
【问题讨论】:
-
感谢@countorlok,简化了该帖子的答案,我能够做到
标签: r dplyr data.table