Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:在自定义类中启用自动完成_R_Autocomplete - Fatal编程技术网

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

我已经创建了一个新类,我想启用R的自动完成

例如:

# 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