1

我有一个请求用户输入数字的函数,如下所示:

request_KBEHAVIOR<-function()
{
as.numeric(readline("Please enter Kramer's behavior>>> "))
}

所以克莱默的行为是一个介于 0 和 1 之间的值(概率),用户会输入类似“.5”的内容

但是,我还希望用户输入像 =1/exp(runif(1)) 这样的等式。这可能吗?

例如在 excel 中,您可以在单元格中输入一个值,或者您可以输入一个类似 =1/exp(rand()) 的函数,然后您可以在任何其他方程式中引用该单元格。非常感谢您提前提供的帮助。

4

1 回答 1

4

您可以使用eval(parse(text=...))

request_KBEHAVIOR<-function() as.numeric(eval(parse(text=
                                 readline("Please enter Kramer's behavior>>> "))))

request_KBEHAVIOR()
Please enter Kramer's behavior>>> 1/exp(runif(1))
# [1] 0.379733

request_KBEHAVIOR()
Please enter Kramer's behavior>>> 0.5
# [1] 0.5
于 2012-04-25T05:27:16.937 回答