Найти все слова, которые имеют «

Обновить

December 2018

Просмотры

67 раз

3

Как вытащить все слова , которые имеют символ « <-» либо в конце слова или где - то между ними , но в последнем случае только если « <-символ» следует за точкой.

Для того, чтобы поместить его в контекст. Упражнение 6.5.3. из Hadley Wickhams - Advanced R просит читателя перечислить все функции замены в базовом пакете.

Функция замены , что есть только один метод, обозначены символом <- прямо в конце имени функции. Обобщенные функции, однако, не их имя метода , связанные с именем формы замены (с точкой), таким образом, что <-больше не в конце имени функции. примерsplit<-.data.frame

РЕДАКТИРОВАТЬ:

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

Это, как вы вытащите все функции в базовом пакете. Теперь я хочу, чтобы найти только функцию замены.

2 ответы

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

Мы можем попробовать

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

данные

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