Sow*_*ian 7 regex perl grep r pattern-matching
可以说我有包base
,dplyr
,data.table
,tidyr
等用装sapply()
.
sapply(c("dplyr","data.table","tidyr"),library,character.only=TRUE)
Run Code Online (Sandbox Code Playgroud)
所以要检查特定包中的函数列表
ls("package:data.table")
Run Code Online (Sandbox Code Playgroud)
现在,如果我想dplyr
从is.
模式开始搜索内部的函数
grep("is\\.",ls("package:dplyr"),value=TRUE)
# [1] "is.grouped_df" "is.ident" "is.sql" "is.src"
# [5] "is.tbl"
Run Code Online (Sandbox Code Playgroud)
我的目标是要搜索的所有功能开始is.
或as.
在多个包同时或任何其他模式.我认为代码很长,即下面我已经合并了列表dplyr
和base
函数,然后添加了grep模式.如何为许多加载的包做到这一点?
grep("is\\.",c(ls("package:dplyr"),ls("package:base")),value=T)
Run Code Online (Sandbox Code Playgroud)
函数search()
会给我加载包的列表.但是如何收集加载包的所有功能,以便我以后可以grep
使用它.
对于单个包,可以通过获得功能列表
ls("package:package_name")
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢.
要获取所有已加载的包的列表,请使用:
x <- grep('package:',search(),value=TRUE) # Comment below by danielson
# e.g. ("package:base", "package:data.table")
sapply(x, function(x) {
paste0(x, ":", grep("is\\.", ls(x),value=TRUE))
})
Run Code Online (Sandbox Code Playgroud)
输出:
$`package:base`
[1] "package:base:is.array" "package:base:is.atomic"
[3] "package:base:is.call" "package:base:is.character"
[5] "package:base:is.complex" "package:base:is.data.frame"
[7] "package:base:is.double" "package:base:is.element"
...
$`package:data.table`
[1] "package:data.table:is.data.table"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
216 次 |
最近记录: |