[英]Error : Non-numeric argument to mathematical function in R
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)
}
ı want to write calculate poisson distribution program in R studio. 我想在R Studio中编写计算泊松分布程序。 This program will an error.
该程序将出错。 >> "Error in dpois(x, lambda) : Non-numeric argument to mathematical function"
>> “ dpois(x,lambda)中的错误:数学函数的非数字参数”
Console: 安慰:
> 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
>
readline
always returns whatever the user types as character data. readline
始终返回用户键入的任何字符数据。 Wrap your readline
statements in as.numeric
, like so: 将
readline
语句包装为as.numeric
,如下所示:
a <- as.numeric(readline(prompt="Enter a value: "))
In addition, I'm not entirely sure of your goal here, but the while
loop is being used incorrectly. 另外,我不太确定您在这里的目标,但是
while
循环使用不正确。 In fact it seems entirely unnecessary, since dpois
can simply be given the four values you've calculated for x
. 实际上,这似乎完全没有必要,因为可以简单地为
dpois
赋予您为x
计算的四个值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.