评估表达两个变量
回答
gsub
怎么样?
avg <- 7
f <- expression(-(x-avg)^2/2)
f.new <- as.expression(gsub('avg',avg,f))
expression("-(x - 7)^2/2")
在一个侧面说明
,你应该避免定义与像mean
或data
因为它们都建在R
函数的名称变量。
这是一种方法。
f <- as.call(f)
eval(substitute(substitute(expr, list(mean=7)), list(expr= f)))
# -(x - 7)^2/2()
如果建筑感觉精神错乱的,你不需要孤单的感觉:即使是谁写将R手动的家伙叫你在这里"a puzzle"所造成的问题。
+1很好的使用替代品两次。但'f <-quote( - (x-mean)^ 2/2))'可能是指定表达式的更好方法...''as.call'对'expression(mean)'不起作用。 。 – Tommy 2012-02-08 21:35:59
@Tommy - 是的,我想过提出这个建议,很高兴你在这里发表评论。我想,即使是有什么东西可以咀嚼。对我来说,这感觉就像一个公案 - 短小精悍,在经过几个小时的沉思之后仍然有回报。我还没有得到为什么'f'需要是一个电话而不是一个表达式,所以我想我还不是“那里”呢) – 2012-02-08 21:46:07
@Josh O'Brien感谢您的回复。 – moli 2012-02-08 22:23:08
在S-Plus中,substitute
函数有一个额外的evaluate
参数,所以在那里它很容易。不幸的是,R缺少这一论点......
# in S-Plus:
x <- expression(-(x-mean)^2/2)
substitute(x, list(mean=7), evaluate=TRUE)
#-(x - 7)^2/2
......所以你必须诉诸于什么@ JoshO'Brien建议。考虑将此记录为具有R核心的功能请求;-)
- 1. 评估表达const的变量范围
- 2. 表达评估
- 3. XSL。评估表达
- 4. Javascript变量评估
- 5. 编译器评估常量表达式
- 6. 优雅地评估R中两个值向量的两个变量的函数?
- 7. 插入值来评估与变量的表达式 - r
- 8. 评估子表达式不给插变量
- 9. 表达式在嵌套ansible变量评估
- 10. 评估变量时JSP表达式语言不起作用
- 11. VS2015:已评估的表达式,但不支持变量
- 12. 用变量评估数学表达式。 (java 8)
- 13. 评估Sass中字符串中的变量或表达式
- 14. 评估字典变量上的数学表达式
- 15. 后缀表达式评估
- 16. JasperReports表达式评估
- 17. Xtext评估表达式
- 18. 如何评估表达式?
- 19. 内联表达式评估
- 20. Groovy表达式评估
- 21. 无法评估表达式
- 22. 表达式评估序列
- 23. 递归表达式评估?
- 24. 评估球拍表达
- 25. 评估数组表达式
- 26. 评估表达式树
- 27. 表达式树评估
- 28. TI83 +评估表达程序
- 29. 评估JavaScript表达式
- 30. 布尔表达式评估
谢谢。我的表情很长,而且有很多变数。我会尝试你的方法。 – moli 2012-02-08 21:24:11
我认为@JoshO'Brien有更好的方法。但是如果你使用'gsub',确保你要替换的字符串是唯一的,而不是别的东西的子字符串。 – Tommy 2012-02-08 21:39:11
@Tommy(Josh +1)我倾向于同意。 – Justin 2012-02-08 21:56:26