因此,我使用rvest
抓取了IMDB网站,并遇到了一些分裂问题。我尝试了其他方法来拆分列,但都失败了。
这是我用于从IMDB网站抓取信息的代码:
votes_gross <- pagesource %>% html_nodes(".sort-num_votes-visible") %>% html_text()
然后我使用以下代码进行清理和拆分:
votes_gross <- gsub("\r?\n|\r", " ", votes_gross)
votes_gross <- data.frame(votes_gross)
library(tidyr)
votes_gross <- separate(votes_gross,
col = "votes_gross",
into = c("Votes", "Gross"),
sep = "|")
我执行单独的代码后,数据框立即变为空。我也尝试使用strsplit
,但也失败了。我知道这里还有其他类似的问题,但它们似乎与我的情况不相似。
我希望做这些:
votes_gross
Votes: 489,547 | Gross: $700.06M
Votes: 615,401 | Gross: $678.82M
Votes: 192,034 | Gross: $608.58M
进入这些:
Votes Gross (Millions)
Votes: 489,547 Gross: $700.06
Votes: 615,401 Gross: $678.82
Votes: 192,034 Gross: $608.58
谢谢
答案 0 :(得分:2)
根据?separate
sep-如果为character,则解释为正则表达式。默认值为正则表达式,可匹配任何非字母数字值序列。
因此,如果我们需要它按字面值求值,请将其放在方括号([|]
或转义\\|
)内,否则将其视为OR
library(tidyverse)
votes_gross <- separate(votes_gross,
col = "votes_gross",
into = c("Votes", "Gross"),
sep = "\\s*[|]\\s*")