我浏览了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)
}
提前致谢。
答案 0 :(得分:7)
'$'
运算符使用部分匹配。也就是说,如果您评估l$sigm2
,它实际上也会与l$sigm2_prior
匹配。要使用完全匹配,您需要使用'[['
或和对象的名称作为字符串:
l[['sigm2_prior']]
'[['
与'$'
的不同之处在于默认情况下exact
参数设置为TRUE
。 Se还:
?'$'