根据.R中的条件更改筛选中的运算符
我正在写一个函数,它应该根据输入向量的长度以两种不同的方式过滤数据根据.R中的条件更改筛选中的运算符,r,function,dplyr,operators,filtering,R,Function,Dplyr,Operators,Filtering,我正在写一个函数,它应该根据输入向量的长度以两种不同的方式过滤数据 library(dplyr) DF = function(country = c("Belgium", "USA", "India")) { operator = ifelse(length(country) == 1, "|" , "&") some_data = data %>%
library(dplyr)
DF = function(country = c("Belgium", "USA", "India")) {
operator = ifelse(length(country) == 1, "|" , "&")
some_data = data %>%
filter(Actor1CountryCode %in% country & Actor2CountryCode %in% country)
return( some_data )
}
但如果我选择country=Germany only,我希望操作员从&to |切换
操作符应该是最终过滤器函数的一部分。我的真实过滤函数非常大,所以我只想使用一个过滤函数。
有人知道如何编写智能函数吗
如果要复制,请执行以下操作:
您可以根据国家/地区的长度应用不同的过滤功能:
您可以使用``将|运算符用作函数:
`|`(TRUE, FALSE)
[1] TRUE
因此,这里有一个可能的解决方案:
DF <- function(country) {
operator <- if (length(country) == 1) `|` else `&`
some_data = data %>%
filter(operator(Actor1CountryCode %in% country, Actor2CountryCode %in% country))
}
DF(c("Belgium", "USA", "India"))
DF("Germany")
`|`(TRUE, FALSE)
[1] TRUE
DF <- function(country) {
operator <- if (length(country) == 1) `|` else `&`
some_data = data %>%
filter(operator(Actor1CountryCode %in% country, Actor2CountryCode %in% country))
}
DF(c("Belgium", "USA", "India"))
DF("Germany")