如何在R中的一个数据帧中使用多个条件

时间:2018-07-31 14:48:56

标签: 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', "" ))

谢谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以在传递给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
})

请注意,由于<>会查找小于/大于x(但不相等)的值,因此您将错过45、60和70的值。为了避免这种情况,您应该使用类似x <= 45的内容。