读取混合格式日期
Reading mixed-format dates
如果一列日期包含两种不同的格式,有没有办法解析这两种格式以便我得到 2 行 2012-04-01 而不是下面的结果?
# A tibble: 2 x 1
date
<date>
1 2012-04-01
2 NA
**Example Code**
library(tidyverse)
data <- read_csv("date\n01/04/12\n41000", col_types = cols_only("date" = col_date("%d/%m/%y")))
head(data)
您可以尝试以下操作,而不是在读取数据时强制使用日期数据类型:
data <- read_csv("date\n01/04/12\n41000")
data %>% mutate(date =ifelse(is.numeric(date), as.Date(date, origin = "1990-01-01"), date))
janitor::convert_to_date
处理混合的 Excel 数值和日期格式的日期。
library(tidyverse)
library(janitor)
data <- read_csv("date,text\n01/04/12,a\n41000,b\n02/02/13,c")
data %>%
mutate(clean_date = convert_to_date(date,
character_fun = lubridate::dmy))
#> # A tibble: 3 x 3
#> date text clean_date
#> <chr> <chr> <date>
#> 1 01/04/12 a 2012-04-01
#> 2 41000 b 2012-04-01
#> 3 02/02/13 c 2013-02-02
自我推销免责声明:我创作了这个包。但是这个函数正是为这个用例而构建的,所以感觉与这里的 post 相关。
如果一列日期包含两种不同的格式,有没有办法解析这两种格式以便我得到 2 行 2012-04-01 而不是下面的结果?
# A tibble: 2 x 1
date
<date>
1 2012-04-01
2 NA
**Example Code**
library(tidyverse)
data <- read_csv("date\n01/04/12\n41000", col_types = cols_only("date" = col_date("%d/%m/%y")))
head(data)
您可以尝试以下操作,而不是在读取数据时强制使用日期数据类型:
data <- read_csv("date\n01/04/12\n41000")
data %>% mutate(date =ifelse(is.numeric(date), as.Date(date, origin = "1990-01-01"), date))
janitor::convert_to_date
处理混合的 Excel 数值和日期格式的日期。
library(tidyverse)
library(janitor)
data <- read_csv("date,text\n01/04/12,a\n41000,b\n02/02/13,c")
data %>%
mutate(clean_date = convert_to_date(date,
character_fun = lubridate::dmy))
#> # A tibble: 3 x 3
#> date text clean_date
#> <chr> <chr> <date>
#> 1 01/04/12 a 2012-04-01
#> 2 41000 b 2012-04-01
#> 3 02/02/13 c 2013-02-02
自我推销免责声明:我创作了这个包。但是这个函数正是为这个用例而构建的,所以感觉与这里的 post 相关。