r语言 - 如何将数字月份替换为月份的全名



使用tidyverse包将带有月份数字的列更改为完整的实际月份名称。请记住,即使这些数据在这里只有四个月,我的真实数据集也包含一年中所有实际月份。

我是整洁的新手

mydata <- tibble(camp = c("Platinum 2018-03","Reboarding 2018","New Acct Auto Jul18", "Loan2019-4"),
Acct = c(1, 33, 6, 43),
Balance = c(222, 7744, 949, 123),
Month = c(1,4,6,8))

我希望输出是 1月、4月、6月、8月等感谢您的帮助。

R 带有一个month.name向量,只要你只需要英文名称,它应该没问题。

mydata %>% mutate(MonthName = month.name[Month])

给:

# A tibble: 4 x 5
camp                 Acct Balance Month MonthName
<chr>               <dbl>   <dbl> <dbl> <chr>    
1 Platinum 2018-03        1     222     1 January  
2 Reboarding 2018        33    7744     4 April    
3 New Acct Auto Jul18     6     949     6 June     
4 Loan2019-4             43     123     8 August 

其他语言

如果您需要其他语言,请使用以下代码(或省略as.character以获取有序因子输出(:

library(lubridate)
Sys.setlocale(locale = "French")
mydata %>% mutate(MonthName = as.character(month(Month, label = TRUE, abbr = FALSE)))

给:

# A tibble: 4 x 5
camp                 Acct Balance Month MonthName
<chr>               <dbl>   <dbl> <dbl> <chr>    
1 Platinum 2018-03        1     222     1 janvier  
2 Reboarding 2018        33    7744     4 avril    
3 New Acct Auto Jul18     6     949     6 juin     
4 Loan2019-4             43     123     8 août  

dplyr-lubridate解决方案:

mydata %>% 
mutate(Month = lubridate::month(Month, label = TRUE, abbr = FALSE))
# A tibble: 4 x 4
camp                 Acct Balance Month  
<chr>               <dbl>   <dbl> <ord>  
1 Platinum 2018-03        1     222 January
2 Reboarding 2018        33    7744 April  
3 New Acct Auto Jul18     6     949 June   
4 Loan2019-4             43     123 August 

最新更新