我正在使用包括完整月份名称的数据:
months <- c("March", "April", "May", "June", "July", "August", "September")
有没有一种函数可以将它们转换为数字?
非常感谢。
您可以使用内置变量month.name
和match()
方法。
match(months, month.name)
[1] 3 4 5 6 7 8 9
或者将您的“months”变量转换为一个因子,然后再转换为整数:
as.integer(factor(months, levels = month.name))
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
))
months = 1:12
names(months) = month.name
months['March']
输出
March
3
另一种方法是通过命名向量将月份数字和名称链接起来
months <- c("March", "April", "May", "June", "July", "August", "September")
x <- setNames(1:12, month.name)
unname(x[months] )