R 如何将数字月份替换为月份';她的全名

R 如何将数字月份替换为月份';她的全名,r,tibble,R,Tibble,使用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, 7

使用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))

mydataR附带了一个
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 
# 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  
给予:

# 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 
# 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  
#一个tible:4 x 5
营地账户余额月名
1白金2018-03 1221 janvier
2 2018年重新上市33 7744 4艾薇儿
3新账户汽车6 949年7月18日6日
4贷款2019-4 43 123 8 aoút

R附带了一个
月.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 
# 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  
给予:

# 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 
# 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  
#一个tible:4 x 5
营地账户余额月名
1白金2018-03 1221 janvier
2 2018年重新上市33 7744 4艾薇儿
3新账户汽车6 949年7月18日6日
4贷款2019-4 43 123 8 aoút

A
dplyr润滑液
解决方案:

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 
mydata%>%
变异(月=润滑::月(月,标签=真,缩写=假))
#一个tibble:4x4
营地账户余额月
1白金2018-03 1222年1月
2 2018年4月33日至7744日重新订票
3新账户自动7月18日6日949年6月
4贷款2019-4 43 123 8月

A
dplyr润滑液
解决方案:

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 
mydata%>%
变异(月=润滑::月(月,标签=真,缩写=假))
#一个tibble:4x4
营地账户余额月
1白金2018-03 1222年1月
2 2018年4月33日至7744日重新订票
3新账户自动7月18日6日949年6月
4贷款2019-4 43 123 8月


我尝试了第一个代码,它运行了,但将该字段中的全部数据转换为NAs。这不是我想要的。@Omomaxi它在你问题中的数据上运行得很好。也许您的真实数据有所不同-也许
列是一个超过12个级别的因素?还是别的什么?@Gregor我不是在质疑它运行的事实,我只是说它将字段中的所有数据都转换为NAs。此外,我还检查了我拥有的真实数据的级别,它的级别不超过12个。这些是我运行此代码时的级别。独特(西南$Month)[1]“02”“05”“06”“07”“08”“09”“10”“11”“12”“04”@G.Grothendeick。我已经解决了为什么您的代码最初不起作用的问题。所以代码不适用于我的真实数据的原因是因为它是一个字符变量,它也有前导零。为了解决这个问题,我添加删除前导零,然后在运行代码之前将数据类型从字符转换为数字。它工作得很好。谢谢。我尝试了第一个代码,它运行了,但将该字段中的所有数据转换为NAs。这不是我想要的。@Omomaxi它在你问题中的数据上运行得很好。也许您的真实数据有所不同-也许
列是一个超过12个级别的因素?还是别的什么?@Gregor我不是在质疑它运行的事实,我只是说它将字段中的所有数据都转换为NAs。此外,我还检查了我拥有的真实数据的级别,它的级别不超过12个。这些是我运行此代码时的级别。独特(西南$Month)[1]“02”“05”“06”“07”“08”“09”“10”“11”“12”“04”@G.Grothendeick。我已经解决了为什么您的代码最初不起作用的问题。所以代码不适用于我的真实数据的原因是因为它是一个字符变量,它也有前导零。为了解决这个问题,我添加删除前导零,然后在运行代码之前将数据类型从字符转换为数字。它工作得很好。谢谢。@akrun这个问题还没有得到回答,你认为是因为我使用了相同的数据集,但添加了感兴趣的列。如果你能回答我的新问题,我将不胜感激。前面的答案没有解决我的问题。它为该列中的数据返回NA。我不知道为什么,只是提示该字段保存为字符数据类型。你是说它不是重复的吗?我在这里找到了相同的答案,只是在
mutate
中使用了它。我重新打开了它,但它不清楚。我不认为它是一个复制品,因为当我使用其中任何一个代码时,它将该列中的数据转换为NAs。因此,我的问题没有得到解决。当我使用mutate时(MonthName=month.name[month])。它创建了新列,但仅使用NAs作为数据。@akrun我已经解决了这个问题。所以代码不适用于我的真实数据的原因是因为它是一个字符变量,它也有前导零。为了解决这个问题,我添加以删除前导零,然后在运行代码之前将数据类型从字符转换为数字。@akrun这个问题没有得到回答,您认为是因为我使用了相同的数据集,但添加了感兴趣的列。如果你能回答我的新问题,我将不胜感激。前面的答案没有解决我的问题。它为该列中的数据返回NA。我不知道为什么,只是提示该字段保存为字符数据类型。你是说它不是重复的吗?我在这里找到了相同的答案,只是在
mutate
中使用了它。我重新打开了它,但它不清楚。我不认为它是一个复制品,因为当我使用其中任何一个代码时,它将该列中的数据转换为NAs。因此,我的问题没有得到解决。当我使用mutate时(MonthName=month.name[month])。它创建了新列,但仅使用NAs作为数据。@akrun我已经解决了这个问题。因此,代码不适用于我的真实数据的原因是因为它是一个字符变量,它还有前导