【问题标题】:Dynamic function for multiple filtering conditions多种过滤条件的动态功能
【发布时间】:2017-03-01 12:35:34
【问题描述】:

我正在尝试创建一个允许我以动态方式过滤我的df 的函数;例如,仅对我的df 的部分列施加条件,每次设置不同的阈值等。

这是一个例子。假设这是我的df 的样子:

 col1   col2   col3
 TRUE    0.2   0.5
 TRUE    0.3   0.7
 FALSE   0.7   1.5

所以,如果我想在我的 df 上施加 2 个不同的过滤器,我需要写 2 行:

df[df$col1 == TRUE & df$col2 > 0.5]
df[df$col2 < 0.3 & df$col3 > 0.6] 

现在假设我有一个包含许多列的df。我正在寻找可以让我避免一次又一次地写整行的东西(使用不同的选择);例如,类似的东西(my_selection 是一个函数):

my_selection (data = df, col1, ==, TRUE, col2, >, 0.5)
my_selection (data = df, col2, <, 0.3, col3, >, 0.6)

您的帮助将不胜感激。

【问题讨论】:

  • 也许您正在寻找?subset
  • @docendodiscimus 如何以动态方式使用subset?我希望能够在col1col2 的条件下调用此函数一次,而在其他时间使用col2col3 (等等...)
  • 我不清楚您以动态方式调用函数是什么意思。到目前为止,我只看到您想使用 3 个不同的条件对 data.frame 进行子集化。这些动态调用会是什么样子?
  • @docendodiscimus 我试着用不同的方式写它..希望现在更清楚

标签: r function filter


【解决方案1】:

我想你可以在那个上使用交互功能:

这是另一个数据集的示例:

employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
employ.data <- data.frame(employee, salary, startdate)


employee_sel<- select.list( unique(employee), graphics = TRUE, multiple = TRUE, title = "Select one or more" )
salary_sel<- select.list( as.character(unique(salary)), graphics = TRUE, multiple = TRUE, title = "Select one or more" )
employ_sel<- select.list( as.character(unique(startdate)), graphics = TRUE, multiple = TRUE, title = "Select one or more" )

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2021-03-28
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多