2012-04-25 21 views
1

我有一个请求用户数字输入如下的功能:R编程语言,我该如何编写一个接受数字信息或变量值的函数?

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

所以克莱默的行为是0和1(概率)之间的值,并且用户将在类似” 0.5" 进入

但是,我还想让用户输入一个方程,如= 1/exp(runif(1))。这可能吗?例如在excel中,你可以在一个单元格中键入一个值,或者你可以键入一个函数,例如= 1/exp(rand()),你可以在任何其他方程中引用该单元格。提前感谢您的帮助。

回答

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 
+0

谢谢你这么多flodel。这是非常有帮助的!我非常感谢你的帮助。 – 2012-04-25 05:32:06

相关问题