首页 文章

为什么不能将包含字符串的R矢量替换为数字?

提问于
浏览
0

我在R数据框中有一个向量,字面上包含表格中一年中月份的缩写(JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC),我想要替换它们的传统等价物[1:12]

提出了以下想法,所有这些想法都给出了一个载有不可用(NA)值的向量 .

replace(df$month, df$month == 'JAN', '01')

df$month <- if(df$month == "JAN") '01'

df$month <- match(df$month,month.abb)

前两个只使得NA值为JAN,第三个使得所有月份的NA值

任何想法为什么这不起作用,以及如何让它工作?

1 回答

  • 1

    我倾向于用 merge 这样做 .

    MonthRef <- data.frame(month_number = 1:12,
                           month_abb = toupper(month.abb))
    #* Make a data frame of random months
    Months <- data.frame(month = sample(MonthRef$month_abb, 20, replace=TRUE))
    
    merge(Months, MonthRef, by.x="month", by.y="month_abb")
    

    这有点打字,但它的优势在于,当我六个月回来时,我会很清楚我做了什么 .

相关问题