首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用两个变量计算表达式中的一个变量

用两个变量计算表达式中的一个变量
EN

Stack Overflow用户
提问于 2012-02-09 04:56:30
回答 3查看 394关注 0票数 2

我想用mean=7对f求值

代码语言:javascript
复制
 mean=7
 f <-  expression(-(x-mean)^2/2)

然后得到一个新的表达式:

代码语言:javascript
复制
 -(x-7)^2/2

我怎么能做到呢?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-09 05:07:04

gsub怎么样?

代码语言:javascript
复制
avg <- 7
f <- expression(-(x-avg)^2/2)
f.new <- as.expression(gsub('avg',avg,f))

expression("-(x - 7)^2/2")

另外,您应该避免使用meandata这样的名称定义变量,因为它们是在R函数中构建的。

票数 0
EN

Stack Overflow用户

发布于 2012-02-09 05:09:22

这里有一种方法。

代码语言:javascript
复制
f <- as.call(f)
eval(substitute(substitute(expr, list(mean=7)), list(expr= f)))
# -(x - 7)^2/2()

如果这种构造让人费解,那么您不需要感到孤单:即使是编写R手册的人也将您在这里提出的问题称为"a puzzle"

票数 2
EN

Stack Overflow用户

发布于 2012-02-09 05:29:33

在S-Plus中,substitute函数有一个额外的evaluate参数,因此非常简单。不幸的是,R遗漏了这个论点...

代码语言:javascript
复制
# in S-Plus:
x <- expression(-(x-mean)^2/2)
substitute(x, list(mean=7), evaluate=TRUE)
#-(x - 7)^2/2

...so你必须求助于@JoshO‘’Brien建议的东西。考虑将此记录为具有R核心的功能请求;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9201269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档