2017-03-16 26 views
-1

这里我给代码为什么ř产生错误,当我试图通过参数传递给如果功能

#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表示是当把它传递给如果(显示= TRUE),相信表达是错误的或什么的。如果display = TRUE参数,那么它应该打印1,否则生成向量x的直方图。

if(type=hist)也显示错误。有人请帮忙。

+2

可能的''==而不是'=' –

回答

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

谢谢它的工作,如果你看一下同一代码的第三个参数类型= “HIST”。我想生成直方图,或者如果type =“density”是一个密度图。 – danishxr

+0

@danish。检查编辑过的代码一次 –

相关问题