gpt4 book ai didi

r - 在 R 中转换为几列的日期?

转载 作者:行者123 更新时间:2023-12-03 23:06:33 25 4
gpt4 key购买 nike

你能帮我看看下面的代码吗?
我确实试图找到答案,但可能已经错过了,如果有人已经为你的时间感到抱歉。

我有一个如下例所示的 DataFrame。我需要做的是将所有 dt_ 变量转换为日期。
我用 mutate()/lapply 一个一个地得到它,但我正在寻找一种自动方法。我在 R 工作。

co_cid Tipo  dt_notificacao co_uf_notificac~ co_uf_completo no_municipio_no~ dt_diagnostico_~
<fct> <fct> <fct> <fct> <fct> <fct> <fct>
1 A90 Deng~ 01/10/2016 PE PERNAMBUCO Recife 23/01/2015
2 A90 Deng~ 02/11/2016 PE PERNAMBUCO Recife 09/01/2015
3 A90 Deng~ 01/11/2016 PE PERNAMBUCO Recife 12/12/2015
4 A90 Deng~ 02/04/2016 PE PERNAMBUCO Recife 12/08/2015
5 A90 Deng~ 01/08/2016 PE PERNAMBUCO Recife 12/01/2015
6 A90 Deng~ 01/11/2016 PE PERNAMBUCO Recife 12/04/2015

我得到了所有的 dt_,应该是日期:
dt_vec <- nomes_colunas[(sapply(nomes_colunas, startsWith,prefix = "dt_"))]

然后我想用它来将所有 dt_ 列转换为 Date 并在原始 df 中替换它。
我尝试了一个带有 mutate 的 for 循环,但列名与变量名保持一致。所以我最终只有一个带有日期的“coluna”变量。
for (coluna in dt_vec) {
df_dados <- df_dados %>% mutate(coluna, coluna = as.Date(coluna, format = "%d/%m/%Y"))
}

至于申请,我发现很难替换原始 df 中的值。

提前致谢!

最佳答案

如果我们想转换几列,使用 mutateacross

library(lubridate)
library(dplyr)#1.0.0
df_dados <- df_dados %>%
mutate(across(starts_with('dt_', dmy)))

dplyr 的早期版本中, mutate_at可以使用
df_dados <- df_dados %>%
mutate_at(vars(starts_with('dt_')), dmy)

关于r - 在 R 中转换为几列的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62334164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com