根据其他列中的条件在数据框中创建的新列 - 但数据读取不正确

时间:2016-01-16 18:31:23

标签: r

我有一个数据框,描述了基于月份和年份在不同地点观察鸟类的情况。它看起来像这样:

       COMMON.NAME OBSERVATION.COUNT                 LOCALITY Month Year
            Bushtit                 1                Vancouver   Jan 2000
   Lapland Longspur                 1 Vancouver - general area   Jan 2000
           Mew Gull                 1                Vancouver   Jan 2000
      American Coot                 4             Maplewood 00   Jan 2000
      American Coot                 2             Maplewood 00   Jan 2000
      American Coot                 1    Iona Island (general)   Jan 2000

我正在尝试在数据框中创建另一个名为“Season”的列,该列对Jan,Feb,Mar的月份进行分组,并将其称为Winter,并将10月,11月,12月的月份分组为秋季。这是我写的代码:

metrobirds$Season<-ifelse(metrobirds$Month==c("Jan","Feb","Mar"),"Winter","Fall")

但是,当我查看数据框时,R未正确地将数据分组到新列中。例如,Jan,Feb或Mar中的许多行表示为Fall,有些正确表示为Winter。我的代码出了什么问题?有任何建议来纠正这个错误?

当我将csv文件读入R时,我将被识别为因子的列转换为字符(例如,通用名称,月份和地点),因此这些列应该被读作字符。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

尝试使用%in%

metrobirds$Season<-ifelse(metrobirds$Month %in% c("Jan","Feb","Mar"),"Winter","Fall")