我正在为自己的课堂写函数。 Hadley Wickham suggests来实现方括号功能,例如[
,[<-
等的功能。但是如何做到这一点呢?
在r.user.05apr发表评论后,我设法写了
`[.test` <- function(x, y){
substr(x, start = y[1], stop = y[length(y)])
}
foo <- "hello world"
class(foo) <- "test"
foo[2:5] #what correctly returns "ello"
我确实找到了sites on how they are called,但是没有解释和定义它们的例子。例如,对于我想提到的[<-
函数,需要三个参数,一个是要操作的对象,一个索引是显示应替换对象的哪些元素,最后是替换。我设法得到
`[<-.test` <- function(obj, index, value){
tmp <- unlist(strsplit(obj, ""))
tmp[index] <- value
return(paste(tmp, collapse = ""))
}
foo <- "hello world"
class(foo) <- "test"
foo[c(2, 5)] <- "X"
,但仅在确定必须将第三个元素称为value
之后才可以。因此,我正在寻找一部涵盖Wickham提到的方法的好文献,易于理解(Writing R Extensions不满足该标准;更像Creating R Packages by Friedrich Leisch)。