关于R,在定义替换函数时,参数是否必须命名为/like";x";及;价值观;?

关于R,在定义替换函数时,参数是否必须命名为/like";x";及;价值观;?,r,function,R,Function,我所说的“替换函数”是指本线程中提到的那些函数,它们看起来像”length,这里有两种情况。首先,替换函数的唯一实际规则是,新值将作为名为value的参数传递,它将是最后一个参数。这就是为什么当您指定签名函数(somex,somevalue)时,会出现错误未使用的参数(value=9),并且赋值不起作用 第二,由于签名中参数名的部分匹配,工作与签名函数(X11,Value11)< /代码>有关。 f<-function(a, value1234=5) { print(value12

我所说的“替换函数”是指本线程中提到的那些函数,它们看起来像
”length,这里有两种情况。首先,替换函数的唯一实际规则是,新值将作为名为
value
的参数传递,它将是最后一个参数。这就是为什么当您指定签名
函数(somex,somevalue)
时,会出现错误
未使用的参数(value=9)
,并且赋值不起作用

第二,由于签名中参数名的部分匹配,工作与签名<代码>函数(X11,Value11)< /代码>有关。

f<-function(a, value1234=5) {
    print(value1234)
}    
f(value=5)
# [1] 5

因此,第一个参数实际上作为未命名的位置参数传递,而新值作为命名参数
value=
传递。这是唯一重要的参数名称。

我想它可能已被传回
first0
,但我不确定。好问题。谢谢你的回答!所以其中一个参数确实有一个固定的名称(我仍然觉得这很奇怪!)。当你打电话给a时,a怎么样
'first0<-' <- function(x, value){
  x[1] <- value
  x
}

first0(a) <- 5
a
# returns [1] 5 2 3.
'first1<-' <- function(somex, somevalue){
  somex[1] <- somevalue
  somex
}

first1(a) <- 9
# Error in `first1<-`(`*tmp*`, value = 9) : unused argument (value = 9)
a
# returns [1] 5 2 3
a <- 'first1<-'(a, 9)
a
# returns [1] 9 2 3
'first2<-' <- function(x11, value11){
  x11[1] <- value11
  x11
}

first2(a) <- 33
a
# returns [1] 33  2  3
f<-function(a, value1234=5) {
    print(value1234)
}    
f(value=5)
# [1] 5
'first0<-' <- function(x, value){
    print(sys.call())
    x[1] <- value
    x
}
a <- c(1,2,3)
first0(a) <- 5
# `first0<-`(`*tmp*`, value = 5)