矢量分类& R中的作业

时间:2014-02-15 17:31:09

标签: r if-statement vector categorization

这可能是一个非常简单的问题,但我无法在任何地方找到答案。我有一个基本的数据框:

somedf <- data.frame(ageGroup = c("Under10", "Over10", "Over50", "Over100"), 
                     favColor = c("red", "pink", "purple", "blue"))

      ageGroup favColor
      1  Under10      red
      2   Over10     pink
      3   Over50   purple
      4  Over100     blue

这有效:

somedf$ageGroup2 <- ifelse(somedf$ageGroup == "Under10", 1, 2 )

   ageGroup favColor ageGroup2
    1  Under10      red         1
    2   Over10     pink         2
    3   Over50   purple         2
    4  Over100     blue         2

但这不是:

somedf$ageGroup3 <- ifelse(somedf$ageGroup == "Under10" || 
                           somedf$ageGroup == "Over10" , 3, 4 )


   ageGroup favColor ageGroup2 ageGroup3
     1  Under10      red         1         3
     2   Over10     pink         2         3
     3   Over50   purple         2         3
     4  Over100     blue         2         3

如您所见,所有行都采用第一行接收的值。我以为你可以使用ifelse进行矢量操作并立即设置整个列的值,但我在这里做错了什么。即使是复杂/嵌套的if/else if/else语句也可以做同样的事情。

谢谢!

0 个答案:

没有答案