如何过滤此数据框?

罗伯特·罗伯特

我有一个数据框,我想过滤它:

employee <- c('John Doe','Peter Gynn','Jolie Hope', 'Michael')
salary <- c(21000, 23400, 26800, 25000)
number <- c(1,2,3,5)
df <- data.frame(employee,salary,number)

> df
    employee salary number
1   John Doe  21000      1
2 Peter Gynn  23400      2
3 Jolie Hope  26800      3
4    Michael  25000      5

我也有这些向量:

vectorMin <- c(22000,1.5)
vectorMax <- c(26000,4.5)

我想用薪水介于22000和26000之间且数字介于1.5和4.5之间的行过滤数据框。在这种情况下,我只需要Peter Gynn的数据框。我努力了:

(df >= vectorMin) & (df <= vectorMax)

但这行不通。我该怎么做?

丰富的雕刻

您可以用来Map对vector / list元素执行一对一的操作。然后,我们可以将结果与相结合Reduce首先,我们定义一个函数between(针对问题的特定需求编写-包括范围),该函数返回相关范围内值的逻辑向量。您也可以在中使用匿名函数Map

between <- function(x, min, max) x >= min & x <= max

df[Reduce("&", Map(between, df[-1], vectorMin, vectorMax)), ]
#     employee salary number
# 2 Peter Gynn  23400      2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章