Ber*_* V. 4 string parameters r filter
为了分析物种数据库,我经常需要更改许多标准,具体取决于项目范围等。
由于总是更改主脚本本身内的标准非常不方便,因此我开始将各种参数定义为文件中的变量,这些参数exterior parameters.R将被复制到项目特定的文件夹并在那里进行调整,并且这些参数将从文件中获取main.R。
这很好用,但是现在我开始过滤表达式,我找不到将它们作为字符串存储在参数文件中的方法。
标准过滤器表达式将是这样的:
rlb == "1" | rlb == "2" | rlb== "3" | rlb == "G" | rlb == "R" | rld ==
"1" | rld == "2" | rld== "3" | rld == "G" | rld == "R" | ffh2 > 1 | ffh4
== 1 | ffh5 == 1 | spa1 == 1 | sap == 1
Run Code Online (Sandbox Code Playgroud)
由于""某些参数,我无法将其分配为字符串变量,因为 R 抱怨存在未知的标记或对象。
如何将此过滤表达式分配给变量,以便稍后可以使用它(例如与eval(my_filter_variable)etc 一起使用)来执行过滤?
除了@Konrad的方法之外,如果表达式是字符串,那么我们可以使用parse_exprfromrlang
library(rlang)
library(dplyr)
df1 %>%
filter(!! parse_expr(expr1))
# col_A col_B
#1 A 1
Run Code Online (Sandbox Code Playgroud)
df1 <- data.frame(col_A = LETTERS[1:10],
col_B = 1:10,
stringsAsFactors = FALSE)
expr1 <- "col_A == 'A' & col_B == 1"
Run Code Online (Sandbox Code Playgroud)