【发布时间】:2013-10-14 16:01:25
【问题描述】:
我有一个字符串如下
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 的所有名称并使用正则表达式提取str 中的对应符号,但我真的不知道如何获取符号,使用 for
instance lapply(names(vec), grepl, str) 只能看到字符串中有哪些变量。
难道没有更简单的方法,例如 formula 或 expression 吗?我还查看了包裹Ryacas,但找不到我需要的东西。
【问题讨论】: