从R字符串中删除HTML格式

时间:2017-04-21 21:53:11

标签: r rvest

我正试图从这个网址中抓取信息:http://www.sports-reference.com/cbb/boxscores/index.cgi?month=2&day=3&year=2017并且已经远远达到了每个游戏都有字符串的程度:

str <-"Yale\n\t\t\t87\n\t\t\t\n\t\t\t\tFinal\n\t\t\t\t\n\t\t\t\n\t\tColumbia\n\t\t\t78\n\t\t\t \n\t\t\t\n\t\t"

理想情况下,我想要使用类似于:

的矢量或数据框
str_vec <- c('Yale',87,'Columbia',78)

我尝试了一些不起作用的东西:

without_n <- gsub(x = str, pattern = '\n')
without_Final <- gsub(x = without_n, pattern = 'Final')
str_vec <- strslpit(x = without_Final, split = '\t')

提前感谢任何有用的提示/答案!

1 个答案:

答案 0 :(得分:2)

您可以使用gsub首先用空字符串替换字符串中的所有非字母数字字符。然后在名称和分数之间插入space。此后,您可以将space上的字符串拆分为所需的数据结构。

require(stringr)

step_1 <- gsub('([^[:alnum:]]|(Final))', "", str)
#"Yale87Columbia78"

step_2 <- gsub("([[:alpha:]]+)([[:digit:]]+)", "\\1 \\2 ", step_1)
strsplit(str_trim(step_2)," ")
#"Yale" "87" "Columbia" "78" 

我认为字符串模式是一致的,这样才能可靠地工作。