R:在自定义类中启用自动完成
我已经创建了一个新类,我想启用R的自动完成 例如:R:在自定义类中启用自动完成,r,autocomplete,R,Autocomplete,我已经创建了一个新类,我想启用R的自动完成 例如: # Define class setClass("customList", representation("list") ) # Make example tmp <- new("customList", list( test='a', b=1:3 ) ) 此自定义列表确实具有可使用的名称和命名参数 nam
# Define class
setClass("customList",
representation("list")
)
# Make example
tmp <- new("customList",
list(
test='a',
b=1:3
)
)
此自定义列表确实具有可使用的名称和命名参数
names(tmp)
[1] "a" "b"
tmp$test
[1] 'a'
现在我想以某种方式启用自动完成,这样我就可以简单地键入
tmp$t <TAB>
你是怎么做到的
提前-谢谢 只需安装最新版本的v0.99.660,问题中所述的自动完成应该可以正常工作 更新: 下面是GRanges类的示例:
library(GenomicRanges)
gr1 <- GRanges(seqnames=Rle(c("ch1", "chMT"), c(2, 4)),ranges=IRanges(16:21, 20),strand=rep(c("+", "-", "*"), 2))
Rstudio将显示自动完成弹出窗口,如下图所示:
您可以继续使用@深入类结构并选择特定元素。作为一种通用解决方案,R中有一个名为
.DollarNames的通用函数,它控制在自定义类对象上的美元符号后按
时的自动完成
例如,这里有一个函数,它可以使customList类的第一个名称自动完成:
.DollarNames.customList <- function(x, pattern="") {
grep(pattern, names(x), value=TRUE)[1]
}
tmp$<tab>
tmp$test
.DollarNames.customList谢谢你提出这个问题。在命令行中,R具有自动完成功能。但是如果这个解决方案也能与RStudio一起工作,那就更好了。这确实解决了我作为示例放入的自定义类的问题-但它不能推广到例如GRanges(在这里可以访问R命令行中的元列).什么是GRanges?对不起-全名是GenomicRanges,它是Bioconductor的主要对象类型之一@克里斯托弗,我的帖子对你有帮助吗?不幸的是,没有-解决方案没有通用化(不适用于其他格兰奇)。
library(GenomicRanges)
gr1 <- GRanges(seqnames=Rle(c("ch1", "chMT"), c(2, 4)),ranges=IRanges(16:21, 20),strand=rep(c("+", "-", "*"), 2))
gr1@
.DollarNames.customList <- function(x, pattern="") {
grep(pattern, names(x), value=TRUE)[1]
}
tmp$<tab>
tmp$test