R:从网站中提取单词

时间:2015-10-22 01:23:18

标签: r grep extract gsub rvest

我试图从网站中提取所有以特定短语开头的单词。我使用的网站是:

http://docs.ggplot2.org/current/

我想提取所有以" stat _"开头的单词。我应该得到21个名字,如" stat_identity"作为回报。我有以下代码:

 stats <- readLines("http://docs.ggplot2.org/current/")
 head(stats)

 grep("stat_{1[a-z]", stats, value=TRUE)

我返回包含短语&#34; stat _&#34;的每一行。我只想提取&#34; stat _&#34;话。所以我尝试了别的东西:

 gsub("\b^stat_[a-z]+ ", "", stats)

我认为我得到的输出是一个空字符串,&#34; &#34;,其中a&#34; stat _&#34;短语会是什么?所以现在我试着想办法提取所有文本并设置 not a&#34; stat _&#34;空字符串的短语。有没有人对如何获得我想要的输出有任何想法?

1 个答案:

答案 0 :(得分:4)

rvest&amp; stringr救援:

library(xml2)
library(rvest)
library(stringr)

pg <- read_html("http://docs.ggplot2.org/current/")

unique(str_match_all(html_text(html_nodes(pg, "body")),
                     "(stat_[[:alnum:]_]+)")[[1]][,2])
##  [1] "stat_bin"                 "stat_bin2dCount"         
##  [3] "stat_bindot"              "stat_binhexBin"          
##  [5] "stat_boxplot"             "stat_contour"            
##  [7] "stat_density"             "stat_density2d"          
##  [9] "stat_ecdf"                "stat_functionSuperimpose"
## [11] "stat_identity"            "stat_qqCalculation"      
## [13] "stat_quantile"            "stat_smooth"             
## [15] "stat_spokeConvert"        "stat_sum"                
## [17] "stat_summarySummarise"    "stat_summary_hexApply"   
## [19] "stat_summary2dApply"      "stat_uniqueRemove"       
## [21] "stat_ydensity"            "stat_defaults"

除非您需要链接(然后您可以使用其他rvest功能),否则会删除所有标记,并为您提供网站文本。