加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

regex – 在R中使用grep搜索多个已加载包的函数

发布时间:2020-12-15 21:57:04 所属栏目:大数据 来源:网络整理
导读:假设我使用sapply()加载了包base,dplyr,data.table,tidyr等. sapply(c("dplyr","data.table","tidyr"),library,character.only=TRUE) 所以要查看特定包中的函数列表 ls("package:data.table") 现在,如果我想在dplyr中搜索以is开头的函数.我做的模式 grep("is
假设我使用sapply()加载了包base,dplyr,data.table,tidyr等.
sapply(c("dplyr","data.table","tidyr"),library,character.only=TRUE)

所以要查看特定包中的函数列表

ls("package:data.table")

现在,如果我想在dplyr中搜索以is开头的函数.我做的模式

grep("is.",ls("package:dplyr"),value=TRUE)
 # [1] "is.grouped_df" "is.ident"      "is.sql"        "is.src"       
 # [5] "is.tbl"

我的目标是搜索以is开头的所有函数.或者作为.或同时在多个包中的任何其他模式.我认为代码很长,即低于我已经结合了dplyr和基本函数的列表,然后添加了grep模式.如何为许多加载的包做到这一点?

grep("is.",c(ls("package:dplyr"),ls("package:base")),value=T)

函数search()会给我加载包的列表.但是如何收集加载包的所有功能,以便我以后可以grep它.

对于单个包,可以通过获得功能列表

ls("package:package_name")

任何帮助都非常感谢.

解决方法

要获取所有已加载的包的列表,请使用:
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))
})

输出:

$`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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读