首页 > 解决方案 > 如何在r中的一个数据框中使用多个条件

问题描述

我正在尝试将这四个标准应用于一个数据框。有没有办法只在一个数据帧上使用它而不是创建单独的数据帧?

Yellow<- apply(df, 2, function(x) ifelse(x < 45, 'Yellow', ""))
Green <- apply(df, 2, function(x) ifelse(x > 45 & x < 60, 'Green', "" ))
Orange <- apply(df, 2, function(x) ifelse(x > 60 & x < 70, 'Orange', "" ))
Red <- apply(df, 2, function(x) ifelse(x > 45, 'Red', "" ))

谢谢您的帮助

标签: r

解决方案


您可以在传递给的一个匿名函数中完成所有步骤apply

apply(df, MARGIN = 2, FUN = function(x) {
  x[x < 45] <- "Yellow"
  x[x > 45 & x < 60] <- "Green"
  x[x > 60 & x < 70] <- "Orange"
  x[x > 70] <- "Red"
  x
})

请注意,您将错过 45、60 和 70的值,<>寻找小于/大于 x(但不等于)的值。为避免这种情况,您应该使用类似x <= 45.


推荐阅读