假设我在r中导入的CSV中有数据,这是一个简化版本-实际工作表有4700多行。有1位数字的月份,也有2位数字的月份。
| | Posted.On |
|1| 5/18/2022 |
|2| 07/04/2022|
|3| 6/20/2022 |
我想把所有1位数的月份改为2位数(例如5/18/2022到05/18/2022)。我该怎么做呢?
这应该足够了:
tibble(date = c('5/18/2022', '12/04/2022', '6/20/2022', '1/20/2022')) %>%
mutate(month = str_extract(date, '\d+'),
date = if_else(str_length(month) == 1 , paste0('0',date), date)) %>%
select(-month)
# # A tibble: 4 × 1
# date
# <chr>
# 1 05/18/2022
# 2 12/04/2022
# 3 06/20/2022
# 4 01/20/2022
gsub()
可以用一个填零的数字替换第一个/
前面的单个数字:
Posted.On <- c('5/18/2022', '07/04/2022', '6/20/2022')
want <- gsub('^(\d{1}/)','0\1', Posted.On)