将R语言中的月份转换成数字

10

我正在使用包括完整月份名称的数据:

months <- c("March",     "April",     "May",       "June",      "July",  "August",  "September")

有没有一种函数可以将它们转换为数字?

非常感谢。

4个回答

26

您可以使用内置变量month.namematch()方法。

match(months, month.name)
[1] 3 4 5 6 7 8 9

或者将您的“months”变量转换为一个因子,然后再转换为整数:

as.integer(factor(months, levels = month.name))

3
这里是一种整洁宇宙(tidyverse)的方法来重命名月份。
df %>%
mutate(month = recode(month,
  Jan = 1,
  Feb = 2,
  Mar = 3,
  Apr = 4,
  May = 5,
  Jun = 6,
  Jul = 7,
  Aug = 8,
  Sep = 9,
  Oct = 10,
  Nov = 11,
  Dec = 12
))

1
months = 1:12
names(months) = month.name
months['March']

输出

March 
    3 

0

另一种方法是通过命名向量将月份数字和名称链接起来

months <- c("March",     "April",     "May",       "June",      "July",  "August",  "September")
x <- setNames(1:12, month.name)
unname(x[months] )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接