2017-12-23 233 views
0
dbl_var<-lambda 
probpois <-function(x, lambda){ 

    #e<-2.718 
prob<-exp(((lambda^x)*(2.718^lambda))/factorial(x)) 

retun(prob) 

} 

a<-readline((prompt="Enter a value: ")) 
b<-readline((prompt="Enter b value: ")) 
lambda<-readline((prompt="Enter lambda value: ")) 
x<-(a:b) 
while (x<b || x>a) { 

dpois(x ,lambda) 

} 

ıRスタジオで計算ポアソン分布プログラムを書いてみたいです。このプログラムはエラーになります。 >> "dpoisでのエラー(X、ラムダ):数学関数への非数値引数"エラー:数学的関数に数値以外の引数があります。

コンソール:

> dbl_var<-lambda 
> probpois <-function(x, lambda){ 
+ 
+  #e<-2.718 
+ prob<-exp(((lambda^x)*(2.718^lambda))/factorial(x)) 
+ 
+ retun(prob) 
+ 
+ 
+ 
+ } 
> a<-readline((prompt="Enter a value: ")) 
Enter a value: 1 
> b<-readline((prompt="Enter b value: ")) 
Enter b value: 4 
> lambda<-readline((prompt="Enter lambda value: ")) 
Enter lambda value: 1.5 
> x<-(a:b) 
> while (x<b || x>a) { 
+ 
+ dpois(x ,lambda) 
+ 
+ } 
Error in dpois(x, lambda) : Non-numeric argument to mathematical function 
> 
+0

あなたの 'readline'呼び出しで2つのかっこを使うのは悪い考えです。それは' prompt'という変数を作り、その値を 'readline'に渡します。新しい変数を作成せずに 'prompt'という名前の引数を設定する場合は、' readline(prompt = "Enter value:") 'と書くべきです。 – user2554330

答えて

1

readlineは常に文字データとしてどのようなユーザータイプを返します。そのように、as.numericであなたのreadline文をラップ:また

a <- as.numeric(readline(prompt="Enter a value: ")) 

、私はここにあなたの目標の完全わからないんだけど、whileループが不正に使用されています。実際には、dpoisにはxについて計算した4つの値を指定するだけで十分ではないようです。

+0

2つのレベルの括弧を使用することに関する上記のコメントを参照してください。 – user2554330

関連する問題