我有一个字符串如下
str <- "- var_a + var_c - var_d"
我想更改向量中的值vec
vec <- c(var_a=0, var_b=0, var_c=0, var_d=0, var_e=0)
vec
var_a var_b var_c var_d var_e
0 0 0 0 0
根据str
:每当一个变量有一个负号,将相应的条目设置vec
为-1,如果它有一个正号为1。我想要的输出看起来像这样:
var_a var_b var_c var_d var_e
-1 0 1 -1 0
我的想法是尝试遍历所有名称vec
并使用正则表达式来提取相应的符号 in str
,但我真的不知道如何获取符号,例如lapply(names(vec), grepl, str)
我只能看到哪些变量在字符串中.
有没有更简单的方法,例如使用formula
or expression
?我还查看了包裹Ryacas
,但找不到我需要的东西。