在 R 中提取准确的单词
Extract Exact Word in R
我想从一个变量(实际上是 url 的)中提取一些确切的词并创建一个仅包含提取的词的新变量。检查模式我发现我想要字符 \\"> 和 ",如下所示:
> dados$source[1:20]
[1] "<a href=\\"http://twitter.com/download/iphone\\" rel=\\"nofollow\\">Twitter for iPhone</a>"
[2] "<a href=\\"http://twitter.com/download/android\\" rel=\\"nofollow\\">Twitter for Android</a>"
[3] "<a href=\\"http://twitter.com\\" rel=\\"nofollow\\">Twitter Web Client</a>"
我该怎么做?
我不确定我是否完全理解您想要提取的模式。但是,使用 Regex 是可行的方法。
问题示例:Removing html tags from a string in R
cleanFun <- function(htmlString) {
return(gsub("<.*?>", "", htmlString))
}
如果您有 HTML,请使用像 rvest 这样的 HTML 解析器来解析字符串。获得非 HTML 字符串后,您可以使用正则表达式。
library(purrr) # use lapply and sapply if you prefer
library(rvest)
# representative data
links <- c("<a href=\\"http://twitter.com/download/iphone\\" rel=\\"nofollow\\">Twitter for iPhone</a>",
"<a href=\\"http://twitter.com/download/android\\" rel=\\"nofollow\\">Twitter for Android</a>",
"<a href=\\"http://twitter.com\\" rel=\\"nofollow\\">Twitter Web Client</a>")
links %>% map(read_html) %>%
map_chr(html_text) %>%
sub('Twitter (for )?', '', .)
## [1] "iPhone" "Android" "Web Client"
我想从一个变量(实际上是 url 的)中提取一些确切的词并创建一个仅包含提取的词的新变量。检查模式我发现我想要字符 \\"> 和 ",如下所示:
> dados$source[1:20]
[1] "<a href=\\"http://twitter.com/download/iphone\\" rel=\\"nofollow\\">Twitter for iPhone</a>"
[2] "<a href=\\"http://twitter.com/download/android\\" rel=\\"nofollow\\">Twitter for Android</a>"
[3] "<a href=\\"http://twitter.com\\" rel=\\"nofollow\\">Twitter Web Client</a>"
我该怎么做?
我不确定我是否完全理解您想要提取的模式。但是,使用 Regex 是可行的方法。 问题示例:Removing html tags from a string in R
cleanFun <- function(htmlString) {
return(gsub("<.*?>", "", htmlString))
}
如果您有 HTML,请使用像 rvest 这样的 HTML 解析器来解析字符串。获得非 HTML 字符串后,您可以使用正则表达式。
library(purrr) # use lapply and sapply if you prefer
library(rvest)
# representative data
links <- c("<a href=\\"http://twitter.com/download/iphone\\" rel=\\"nofollow\\">Twitter for iPhone</a>",
"<a href=\\"http://twitter.com/download/android\\" rel=\\"nofollow\\">Twitter for Android</a>",
"<a href=\\"http://twitter.com\\" rel=\\"nofollow\\">Twitter Web Client</a>")
links %>% map(read_html) %>%
map_chr(html_text) %>%
sub('Twitter (for )?', '', .)
## [1] "iPhone" "Android" "Web Client"