rbind / cbind无法在[保留]的多个数据帧上工作

问题描述 投票:-1回答:1

R的新手,正在尝试制作一个简单的网络爬虫。目标是遍历以下功能并提取每个日期的团队统计信息,然后输出到单个.csv文件。将数据放入data.frames后,由于行差异,rbind / cbind似乎无法正常工作。我尝试了许多不同的变体,不确定下一步要去哪里;

startddate <- as.Date("2016-11-11")
enddate <- as.Date("2016-11-15")

MyData <-  lapply(seq.Date(startdate, enddate, by="1 day"), function(x) {
       url <- paste0("http://barttorvik.com/trank.php?year=2017&sort=&lastx=0&hteam=&t2value=&conlimit=&state=All&begin=20161111&end=", x,"&top=0&quad=5&venue=All&type=All&mingames=0#")
       Data1 <- read_html(url)
       tables <- Data1 %>%
         html_nodes("table")
       tables
       tables[[1]]
       Data1 <- tables[[1]] %>%
         html_table(header = TRUE)
       glimpse(Data1)
})
r dataframe web-scraping rbind cbind
1个回答
0
投票

我想您正在尝试在MyData中绑定data.frames?由于MyData是一个列表,请尝试将data.table的rbindlist设置fill设置为true以处理data.frames具有不同的尺寸

library(data.table)
MyData <- rbindlist(MyData, fill=TRUE)

否则,使用rbind / cbind会收到什么错误消息?

编辑:看来您的表格有两个标题,下面将var的名称设置为第一行,然后从第二行开始返回。您可能需要将var重新命名为更有意义的名称

library(dplyr)
library(rvest)
library(data.table)

startdate <- as.Date("2016-11-11")
enddate <- as.Date("2016-11-15")

MyData <-  lapply(seq.Date(startdate, enddate, by="1 day"), function(x) {
  url <- paste0("http://barttorvik.com/trank.php?year=2017&sort=&lastx=0&hteam=&t2value=&conlimit=&state=All&begin=20161111&end=", x,"&top=0&quad=5&venue=All&type=All&mingames=0#")
  Data1 <- read_html(url)
  tables <- Data1 %>%
    html_nodes("table")
  #tables[[1]]
  Data1 <- tables[[1]] %>%
    html_table(header = TRUE)

  names(Data1) <- Data1[1,]
  Data1[2:nrow(Data1),] %>% glimpse()
})

MyData <- rbindlist(MyData, fill=TRUE)
© www.soinside.com 2019 - 2024. All rights reserved.