美文网首页
55.关于正则表达式在其他函数中的应用

55.关于正则表达式在其他函数中的应用

作者: 心惊梦醒 | 来源:发表于2021-09-07 08:20 被阅读0次

【上一篇:54.关于模式匹配的一些函数(四)】
【下一篇:56. 关于因子的一些个人理解】

    关于模式匹配的一些基本函数已经讲完了。我们的主线是stringr包中的str_*系列函数,同时比较了相对应的Base R中函数。
    还有一些其他的知识:stringr包是建立在stringi包之上的。stringr包中的函数是经过精心挑选的一组共49个用来处理最常见字符串操作的相关函数。stringi包就很复杂了,包括250个。如果你在stringr中有处理不了的问题,可以试试stringi包,两者函数的区别在于str_*和stri_*。


    在其他函数中也有正则表达式的思想,尤其是做简单的批量检索的时候。例如,你记不住函数的全名,可以用apropos();你不知道某个函数在哪个包里,可以用find();你想实现和Linux的ll找文件的功能,可以用Sys.glob();
    举个例子:

# 找带有replace字符串的函数名
> apropos("replace")
 [1] "%+replace%"                     ".rs.registerReplaceHook"       
 [3] ".rs.replaceBinding"             ".rs.rpc.replace_comment_header"
 [5] "replace"                        "replace_na"                    
 [7] "setReplaceMethod"               "str_replace"                   
 [9] "str_replace_all"                "str_replace_na"                
[11] "theme_replace"  
# 找replace_na函数在哪个包里
> find("replace_na")
[1] "package:tidyr"
# 找当前目录下带有R字符的所有文件
> Sys.glob(paste(getwd(),"*R*",sep="/"))
[1] "D:/Program Files/Rdata/01.R_basic.r"
[2] "D:/Program Files/Rdata/b.Rdata" 

    函数的Usage,我在这里说找函数其实是狭隘了,正确的应该是全局环境中的所有对象(例如一些数据集在哪个包里等):

# approach position,输出是一个按照name排序的向量
apropos(what, where = FALSE, ignore.case = TRUE, mode = "any")

what:一个字符串,函数根据给定字符串在全局环境中寻找,不能是向量
where:标出每个函数在search list中的序号,(还不知道有什么用)
mode:如果不是any,则仅匹配输出和mode(what)相同mode的结果
# 和apropos工作原理类似,返回what所在包的名字
find(what, mode = "any", numeric = FALSE, simple.words = TRUE)

what:默认搜索对象准确的名称,即simple.words=TRUE的情况
     当simple.words=FALSE时,what可以像apropos()一样是个正则表达式
numeric:作用于apropos()中的where一样,给出返回值在search list中的位置
simple.words:默认为TRUE,表明what必须是准确的名称
Sys.glob(paths, dirmark = FALSE)
paths:相对路径或绝对路径
dirmark:默认是FASLE,表明如果paths是路径,返回的结果中字符串末尾不带/
   如果是TRUE,则返回结果字符串末尾带/
### 举个栗子:
> Sys.glob(file.path(R.home(), "library", "*", "R"))
  [1] "D:/PROGRA~1/R-41~1.0/library/ATACseqQC/R"                        
  [2] "D:/PROGRA~1/R-41~1.0/library/AnnotationDbi/R"                    
  [3] "D:/PROGRA~1/R-41~1.0/library/AnnotationFilter/R"                 
  [4] "D:/PROGRA~1/R-41~1.0/library/AnnotationHub/R" 

【上一篇:54.关于模式匹配的一些函数(四)】
【下一篇:56. 关于因子的一些个人理解】

相关文章

  • 56. 关于因子的一些个人理解

    【上一篇:55.关于正则表达式在其他函数中的应用】[https://www.jianshu.com/p/5b16b...

  • 55.关于正则表达式在其他函数中的应用

    【上一篇:54.关于模式匹配的一些函数(四)】[https://www.jianshu.com/p/217da23...

  • C++11新特性--lambda

    匿名函数--lambda函数     匿名函数或者匿名类这种语法在其他语言(如lisp,java中)早有应用。在C...

  • PHP常用正则表达式汇总

    PHP常用正则表达式汇总 正则表达式在 PHP 中的应用在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正...

  • 正则表达式与方法

    正则表达式---常用符号 正则表达式--常用函数 正则表达式--常用技巧 代码: 正则表达式的应用举例 1、使用f...

  • Python 正则表达式(三)

    前言 前面两节已经介绍了Python正则表达式的语法,接下来我们来看看 re 模块中各种函数的应用 常用函数 1、...

  • 正则表达式在程序编码中的应用

    正则表达式在程序编码中的应用 正则表达式(括号)、[中括号]、{大括号}的区别小结 正则表达式的() [] {}有...

  • 正则表达式

    正则表达式介绍: //正则表达式不是js中的独有功能//其他的一些语言中也有正则的实现方式,当我们在查看关于正则的...

  • Python装饰器1-可调用对象

    python可调用对象以及函数概念 在Python中,除了用户定义的函数,调用运算符(即 ())还可以应用到其他对...

  • 35、Excel 执行正则数据替换 ETRegexReplace

    函数名:ETRegexReplace 函数功能:执行正则表达式,完成数据的替换工作; 应用场景: 1、使用正...

网友评论

      本文标题:55.关于正则表达式在其他函数中的应用

      本文链接:https://www.haomeiwen.com/subject/mudjwltx.html