我创建了一个新类,我想启用R的自动完成功能。
一个例子可能是:
# Define class
setClass("customList",
representation("list")
)
# Make example
tmp <- new("customList",
list(
test='a',
b=1:3
)
)
结果如下:
tmp
# An object of class "customList"
# [[1]]
# [1] 'a'
#
# [[2]]
# [1] 1 2 3
此自定义列表确实具有可以使用的名称和命名参数
names(tmp)
[1] "a" "b"
tmp$test
[1] 'a'
现在我想以某种方式启用自动完成功能,所以我只需输入
即可tmp$t <TAB>
并获取
tmp$test
如何做到这一点?
提前 - 谢谢!
答案 0 :(得分:0)
只需安装最新的v0.99.660 Rstudio,您问题中所述的自动填充应该可以正常运行。
<强>更新强>
以下是GRanges类的示例:
library(GenomicRanges)
gr1 <- GRanges(seqnames=Rle(c("ch1", "chMT"), c(2, 4)),ranges=IRanges(16:21, 20),strand=rep(c("+", "-", "*"), 2))
然后你可以输入:
gr1@
Rstudio将显示自动完成弹出窗口,如下图所示:
您可以继续使用 @ 深入了解课程结构并选择特定元素。
答案 1 :(得分:0)
作为一般解决方案,R中有一个名为.DollarNames
的泛型函数,该函数控制在自定义类对象上的美元符号后面按<tab>
时获得的自动完成功能。
作为示例,下面的函数可以自动完成您的customList类的名字:
.DollarNames.customList <- function(x, pattern="") {
grep(pattern, names(x), value=TRUE)[1]
}
tmp$<tab>
tmp$test
当然,您希望在实际情况下返回所有结果。因此末尾的[1]
应该删除。