R函数参数命名。 sigm2 = sigm2_prior?

时间:2011-07-08 09:03:06

标签: r

我浏览了R文档,但我找不到相关的线索。所以问题是,当分配l $ sigm2_prior时,似乎也分配了l $ sigm2。 R是否像这样,因为它们的名字相似?有办法吗?

函数调用:

如果我将l $ sigm2_prior的名称更改为l $,则不会分配$ sigm2。

lik_gaussian(lik=lik[[1]],sigm2_prior=pn[[1]], debug=TRUE);

功能:

lik_gaussian <-function(...){
l <- list(...);
inputarray <- NULL;
if(!(length(l$lik)==0)){
        inputarray <- c(l$lik); 
    }
if(!(length(l$sigm2)==0)){
                 inputarray <- c(inputarray, l$sigm2); 
    }   
if(!(length(l$sigm2_prior)==0)){
        inputarray <- c(inputarray,l$sigm2_prior); 
    }
print(inputarray);
return(inputarray)
}

提前致谢。

1 个答案:

答案 0 :(得分:7)

'$'运算符使用部分匹配。也就是说,如果您评估l$sigm2,它实际上也会与l$sigm2_prior匹配。要使用完全匹配,您需要使用'[['或和对象的名称作为字符串:

 l[['sigm2_prior']]

'[[''$'的不同之处在于默认情况下exact参数设置为TRUE。 Se还:

?'$'