找到所有包含"< - "在点前面的单词OR的末尾

时间:2016-05-14 17:45:44

标签: regex r

如何提取所有带有符号&#34; <-&#34;的单词?无论是在单词的结尾还是介于两者之间的某个地方,但只有在&#34; <-&#34;符号后跟一个点。

将其置于上下文中。练习6.5.3 a。 Hadley Wickhams - Advanced R 要求读者列出基础包中的所有替换功能。

只有一种方法的替换函数由符号<-表示 在函数名称的末尾。但是,通用功能有它们的功能 方法名称附加到替换表单的名称(带点),这样<-不再位于函数名称的末尾。示例split<-.data.frame

编辑:

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

这是你如何拉出基础包中的所有功能。现在我想找到替换函数。

2 个答案:

答案 0 :(得分:4)

如果您想要所有基本包更换功能及其各自的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帮助我改进这个答案。

答案 1 :(得分:1)

我们可以尝试

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

数据

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