我收集了一个公式列表,例如,
g <- list( c("allo",3) ~ 23, c("toto",4) ~ 29)
然后我有以下变量
u = "toto"
和v = 4
。我想检查方程的左侧是否有任何匹配 c(u, v)
。很容易提取第一个左侧项,例如 g[[1]][[2]]
,但该项具有类 language
,
str(g[[1]][[2]])
# language c("allo", 3)
如何将
language
表达式与 chr
向量进行比较?
我们可以使用
substitute
来寻找相等性。
g <- list( c("allo",3) ~ 23, c("toto",4) ~ 29)
substitute(c(u, v), list(u = "toto", v = 4))
# c("toto", 4)
g[[2]][[2]]
# c("toto", 4)
sapply(g, function(.g) identical(.g[[2]], substitute(c(u, v), list(u = "toto", v = 4))))
# [1] FALSE TRUE