【问题标题】:How do I clean and organize this list of scraped data?如何清理和组织这个抓取数据列表?
【发布时间】:2020-11-13 04:35:03
【问题描述】:

我的问题是,在这个社区的大力帮助下,我设法收集了我想要的大部分数据;但是,我没有设法以任何有意义的方式组织它。我在source 中使用的链接是我为这个项目拥有的许多链接的一个示例,它们代表了所有这些

library(rvest)
library(tidyverse)

#source links
source<-c("http://www.ufcstats.com/fighter-details/f2688492b9a525a3","http://www.ufcstats.com/fighter-details/f1fac969a1d70b08")

fp_e<-map(source, function(career_data){
  read_html(career_data)%>%
    html_nodes("div ul li")%>%
    html_text()%>%
    #cleans up the data a bit
    str_replace_all(.,"\n\\s+\n\\s+","")%>%
    as.data.frame(.)
})

我想用这个列表做的是把它变成一个可用的数据框。我最初的想法是在as.data.frame()之后transpose()它;但是,它所做的只是将所有内容放在一行中。此外,我无法索引数据框。这让我相信数据框的设置不是我想象的那样。我想在这里更具体一点,但老实说,我现在很困惑。

四处搜索,我找到了这个question,neilfws 的回答让我有了构建数据框并将数据插入其中的想法;但是,我什至不知道从哪里开始。当它已经以我喜欢的格式设置时,我也不确定是否有必要这样做。

这是我尝试过的第一个真实世界的R 应用程序,我真的很困惑如何组织这些数据。感谢您的任何帮助和建议!

【问题讨论】:

标签: r web-scraping data-structures rvest


【解决方案1】:

您可以使用 tidyverse 库进行一些数据清理:

library(tidyverse)
library(rvest)

map(source, function(career_data){
  read_html(career_data) %>%
    html_nodes("div ul li")%>%
    html_text() %>%
    trimws(whitespace = '[\\s\n]') %>%
    tibble(data = .) %>%
    separate(data, c('Property', 'Value'), sep = ':') %>%
    na.omit() %>%
    mutate(Value = trimws(Value, whitespace = '[\n\\s]'))
})

这会返回:

#[[1]]
# A tibble: 13 x 2
#   Property  Value         
#   <chr>     <chr>         
# 1 Height    "5' 6\""      
# 2 Weight    "135 lbs."    
# 3 Reach     "68\""        
# 4 STANCE    "Orthodox"    
# 5 DOB       "Oct 16, 1981"
# 6 SLpM      "3.70"        
# 7 Str. Acc. "39%"         
# 8 SApM      "2.70"        
# 9 Str. Def  "66%"         
#10 TD Avg.   "2.28"        
#11 TD Acc.   "31%"         
#12 TD Def.   "65%"         
#13 Sub. Avg. "0.3"         

#[[2]]
# A tibble: 13 x 2
#   Property  Value         
#   <chr>     <chr>         
# 1 Height    "6' 2\""      
# 2 Weight    "170 lbs."    
# 3 Reach     "74\""        
# 4 STANCE    "Southpaw"    
# 5 DOB       "Aug 25, 1991"
# 6 SLpM      "2.53"        
# 7 Str. Acc. "47%"         
# 8 SApM      "2.05"        
# 9 Str. Def  "55%"         
#10 TD Avg.   "1.39"        
#11 TD Acc.   "31%"         
#12 TD Def.   "70%"         
#13 Sub. Avg. "0.4"         

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 2011-08-21
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2022-12-03
    相关资源
    最近更新 更多