2012-04-25 47 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

相關問題