length()
的变异实现是如何工作的?
示例:给定一个向量 v
,如何将长度设置为 12?
length(v) <- 12
我能否创建自己的函数以相同的方式重载运算符?
示例:将所有其他元素设置为 7
everyOther(v) <- 7
最佳答案
那些赋值函数就是函数。它们可以写成以下形式(注意反引号 - 必须使用它们),其中 fname
区分函数名。
`fname<-` <- function(x, value) { ... }
所以你的 everyOther
赋值函数可以写成
`everyOther<-` <- function(x, value) {
x[c(FALSE, TRUE)] <- value
x
}
我们可以像使用它一样使用它 length(x) <- value
v <- 1:20
everyOther(v) <- 7
v
# [1] 1 7 3 7 5 7 7 7 9 7 11 7 13 7 15 7 17 7 19 7
关于r - 赋值运算符的重载与长度函数的组合如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471699/