Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中,是否转换为几列的日期?_R_Date_Dplyr_Data Cleaning - Fatal编程技术网

在R中,是否转换为几列的日期?

在R中,是否转换为几列的日期?,r,date,dplyr,data-cleaning,R,Date,Dplyr,Data Cleaning,你能帮我查一下下面的代码吗? 我确实试图找到一个答案,但可能已经错过了,如果有一个已经对不起你的时间 我有一个数据框架,如下面的示例。我需要做的是将所有的dt_uu变量转换为日期。 我通过mutate()/lappy一个接一个地获得了它,但我正在寻找一种自动方法。我在R工作 co_cid Tipo dt_notificacao co_uf_notificac~ co_uf_completo no_municipio_no~ dt_diagnostico_~ <fct> <

你能帮我查一下下面的代码吗? 我确实试图找到一个答案,但可能已经错过了,如果有一个已经对不起你的时间

我有一个数据框架,如下面的示例。我需要做的是将所有的dt_uu变量转换为日期。 我通过mutate()/lappy一个接一个地获得了它,但我正在寻找一种自动方法。我在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  
co_cid Tipo dt_notificaco co_uf_notificaco~co_uf_completo no_市政_no~dt_diagnostico_~
1 A90邓~2016年10月1日西班牙伯南布哥累西腓2015年1月23日
2 A90邓~2016年11月2日佩尔南布哥累西腓2015年1月9日
3 A90邓~2016年11月1日西班牙伯南布哥累西腓2015年12月12日
4 A90邓~2016年4月2日西班牙伯南布哥累西腓2015年8月12日
5 A90邓~2016年8月1日佩尔南布哥累西腓PE 2015年1月12日
6 A90邓~2016年11月1日西班牙伯南布哥累西腓2015年4月12日
我得到了所有的日期,应该是:

dt_vec <- nomes_colunas[(sapply(nomes_colunas, startsWith,prefix = "dt_"))]

dt_-vec如果我们想转换多个列,请使用
mutate
交叉

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

您可以使用
startsWith
查找要转换的列,并使用
lappy
使用
as.Date
将它们转换为日期。我们可以使用base R来实现这一点

cols <- startsWith(names(df), 'dt')
df[cols] <- lapply(df[cols], as.Date, "%d/%m/%Y")
df

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

那太快了!我认为第一个vertion缺少一个“)”,但了解Cross函数真的很好!谢谢大家!
df_dados%+变异(跨越(以('dt_'),dmy开头))
@YuriMizusawa抱歉,我没有测试它。谢谢你纠正这一点
df_dados <- df_dados %>%
              mutate_at(vars(starts_with('dt_')), dmy)
cols <- startsWith(names(df), 'dt')
df[cols] <- lapply(df[cols], as.Date, "%d/%m/%Y")
df

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