如何用户在 R 中定义过滤参数?
How to user define filtering parameters in R?
我需要一些关于用户定义函数或类似方法的帮助,让我定义过滤并重复使用它。我有一个 DF,我需要过滤成许多较小的 DF-s,我需要不时重用和更改一些过滤逻辑。我想定义过滤逻辑,以便我只能在一个地方更改它,然后将其应用于我必须使用它进行的所有过滤。
我想定义以下过滤条件:
注意!我知道以下不是定义函数的条件。这只是为了说明我需要什么。
Filter_A <- DF %>%
filter(between(EMTAK, 200, 232) |
between(EMTAK, 400, 450))
Filter_B <- DF %>%
filter(between(EMTAK, 250, 260) |
EMTAK == 500))
当我编写代码时,我想通过以下方式重新使用上述过滤:
New_DF <- DF %>%
filter(EMTAK == Filter_A |
EMTAK == Filter_B,
SECTOR == "Metal" |
SECTOR == "Plastic")
简而言之,我想定义过滤,然后将该过滤与其他过滤一起使用以获得我需要的 DF。
你能告诉我怎么做吗:)
谢谢,
在您的 DF
中定义过滤器变量并(重新)在过滤器中使用这些变量。
DF %>%
mutate(
filterA = between(EMTAK, 200, 232) |
between(EMTAK, 400, 450),
filterB = between(EMTAK, 250, 260) |
EMTAK == 500)
)
New_DF <- DF %>%
filter(Filter_A |
Filter_B,
SECTOR == "Metal" |
SECTOR == "Plastic")
或者为您的过滤器定义函数。请注意,调用函数时不需要 ==
,因为函数已经 return 一个逻辑向量。
filterA <- function(x){
between(x, 200, 232) |
between(x, 400, 450)
}
filterB <- function(x){
between(x, 250, 260) |
x == 500)
}
New_DF <- DF %>%
filter(filterA(EMTAK) |
filterB(EMTAK),
SECTOR == "Metal" |
SECTOR == "Plastic")
我需要一些关于用户定义函数或类似方法的帮助,让我定义过滤并重复使用它。我有一个 DF,我需要过滤成许多较小的 DF-s,我需要不时重用和更改一些过滤逻辑。我想定义过滤逻辑,以便我只能在一个地方更改它,然后将其应用于我必须使用它进行的所有过滤。
我想定义以下过滤条件:
注意!我知道以下不是定义函数的条件。这只是为了说明我需要什么。
Filter_A <- DF %>%
filter(between(EMTAK, 200, 232) |
between(EMTAK, 400, 450))
Filter_B <- DF %>%
filter(between(EMTAK, 250, 260) |
EMTAK == 500))
当我编写代码时,我想通过以下方式重新使用上述过滤:
New_DF <- DF %>%
filter(EMTAK == Filter_A |
EMTAK == Filter_B,
SECTOR == "Metal" |
SECTOR == "Plastic")
简而言之,我想定义过滤,然后将该过滤与其他过滤一起使用以获得我需要的 DF。
你能告诉我怎么做吗:)
谢谢,
在您的 DF
中定义过滤器变量并(重新)在过滤器中使用这些变量。
DF %>%
mutate(
filterA = between(EMTAK, 200, 232) |
between(EMTAK, 400, 450),
filterB = between(EMTAK, 250, 260) |
EMTAK == 500)
)
New_DF <- DF %>%
filter(Filter_A |
Filter_B,
SECTOR == "Metal" |
SECTOR == "Plastic")
或者为您的过滤器定义函数。请注意,调用函数时不需要 ==
,因为函数已经 return 一个逻辑向量。
filterA <- function(x){
between(x, 200, 232) |
between(x, 400, 450)
}
filterB <- function(x){
between(x, 250, 260) |
x == 500)
}
New_DF <- DF %>%
filter(filterA(EMTAK) |
filterB(EMTAK),
SECTOR == "Metal" |
SECTOR == "Plastic")