这里我给的是代码
#my user defined function
my.display<-function(x,display=TRUE,type="hist",prob=TRUE)
{
if(display=TRUE)
print("1")
else hist(x)
if(type=hist) hist(x) elseif(type=density) plot(density(x))
cat("Please specify type as either hist or density")
if(prob=TRUE) hist(x,freq=TRUE) else hist(x,freq=TRUE)
}
错误r显示的是当它传递给if(显示= TRUE)时,我相信表达式是错误的或者其他什么。如果display = TRUE参数,那么它应该打印1否则生成向量x的直方图。
if(type=hist)
也显示错误。有人请帮忙。
答案 0 :(得分:2)
=
在R
<-
运算符相同的赋值运算符
而==
是一个逻辑运算符。
所以你应该使用if(display == TRUE)
。您可能还想在if-else结构中添加一些{}
以提高可读性。
尝试使用此代码进行第二次怀疑
my.display<-function(x,display,type,prob=TRUE)
{if(display==TRUE){
print("1")
}
else
if(type=="hist") {hist(x)}
else
if(type=="density") {plot(density(x))}
else
cat("Please specify type as either hist or density")
if(prob==TRUE){ hist(x,freq=TRUE)}
else
hist(x,freq=TRUE)
}