此代码:
f1 <- function(abc , ac , df){
list(f1 = abc , f2=ac , f3 = df)
}
f1(1,2,a=3)
返回错误:
Error in f1(1, 2, a = 3) : argument 3 matches multiple formal arguments
由于abc
,函数ac
中的参数f1
,function partial matching
是否匹配此错误的原因是什么?
答案 0 :(得分:6)
当命名参数与任何正式参数完全匹配时,
R尝试通过前缀应用部分匹配的。
abc
和ac
都以&#34; a&#34;开头,
并且R不知道应该使用哪一个,
所以它引起了错误。
如果您使用f1(1, 2, ac=3)
,
那么R会将3
分配给ac
,
然后它会将剩余的值分配给剩余的未分配参数,
所以1
到abc
和2
到df
。