代码之家  ›  专栏  ›  技术社区  ›  Manuel R

查找单词末尾或点前面有“<-”的所有单词

  •  3
  • Manuel R  · 技术社区  · 8 年前

    如何提取所有带符号的单词“ <- “要么在单词末尾,要么介于两者之间,但在后一种情况下,只有在” <- “符号后面跟着一个点。

    把它放到上下文中。练习6.5.3 a.of Hadley Wickhams-高级R 要求读者列出基本包中的所有替换函数。

    只有一个方法的替换函数用符号表示 <- 就在函数名的末尾。然而,泛型函数有其 方法名附加到替换表单的名称(带点),以便 <- 不再位于函数名的末尾。实例 split<-.data.frame

    编辑:

    obj <- mget(ls("package:base"), inherits = TRUE)
    funs <- Filter(is.function, objs)
    

    这就是如何提取基本包中的所有函数。现在我只想找到替换函数。

    2 回复  |  直到 8 年前
        1
  •  6
  •   Rich Scriven    8 年前

    如果您想要所有基本包替换函数及其各自的S3方法,可以尝试

    ls(envir = as.environment("package:base"), pattern = "<-")
    

    在未加载包的情况下,这会产生以下结果:

     [1] "<<-"                     "<-"                      "[<-"                    
     [4] "[[<-"                    "@<-"                     "$<-"                    
     [7] "attr<-"                  "attributes<-"            "body<-"                 
    [10] "class<-"                 "colnames<-"              "comment<-"              
    [13] "[<-.data.frame"          "[[<-.data.frame"         "$<-.data.frame"         
    [16] "[<-.Date"                "diag<-"                  "dim<-"                  
    [19] "dimnames<-"              "dimnames<-.data.frame"   "Encoding<-"             
    [22] "environment<-"           "[<-.factor"              "[[<-.factor"            
    [25] "formals<-"               "is.na<-"                 "is.na<-.default"        
    [28] "is.na<-.factor"          "is.na<-.numeric_version" "length<-"               
    [31] "length<-.factor"         "levels<-"                "levels<-.factor"        
    [34] "mode<-"                  "mostattributes<-"        "names<-"                
    [37] "names<-.POSIXlt"         "[<-.numeric_version"     "[[<-.numeric_version"   
    [40] "oldClass<-"              "parent.env<-"            "[<-.POSIXct"            
    [43] "[<-.POSIXlt"             "regmatches<-"            "row.names<-"            
    [46] "rownames<-"              "row.names<-.data.frame"  "row.names<-.default"    
    [49] "split<-"                 "split<-.data.frame"      "split<-.default"        
    [52] "storage.mode<-"          "substr<-"                "substring<-"            
    [55] "units<-"                 "units<-.difftime"
    

    感谢@42帮助我改进了这个答案。

        2
  •  1
  •   akrun    8 年前

    我们可以试试

    library(stringr)
    str_extract(v1, "\\w+<-$|\\w*<-\\.\\S+")
    #[1] "split<-.data.frame" NA                   "splitdata<-"    
    

    数据

    v1 <-  c("split<-.data.frame", "split<-data", "splitdata<-")