Нужна небольшая помощь в преобразовании htmltab в tibble - PullRequest
0 голосов
/ 05 сентября 2018

Пытаясь выручить друга с помощью данных, перебирающих футбольный график Майами Дельфинс в тиббл

library(htmltab)
library(tidyr)
library(tibble)

url <- "http://www.espn.com/nfl/team/schedule/_/name/mia"
data <- htmltab(doc = url, which = 1, header = 2)

unique(data)

as_tibble(data)

Из таблицы извлекаются те же заголовки (переменные). Я что-то упустил. Нужна небольшая помощь в преобразовании htmltab в tibble. Спасибо.

Как должна выглядеть таблица

1 Ответ

0 голосов
/ 08 сентября 2018

Поэтому я использую пакет "rvest" для получения данных с веб-сайтов. Я думаю, что основная проблема заключается в том, что этот сайт не имеет хорошего четкого формата таблицы, который вы можете использовать напрямую. Вы должны очистить его, чтобы получить желаемый результат.

rm(list=ls())
library(tidyverse)
library(rvest)

##### get data from web #####
url = "http://www.espn.com/nfl/team/schedule/_/name/mia"
tb <- url %>%
  read_html() %>%
  html_table() # this function is actually going to read all tables at this url
rawdata = tb[[1]] # tb is a list and here we only want the fist table

#### clean up the data #####
names(rawdata) = rawdata[2,] # using the second row as data names
tmp = data[grepl("from",data$TICKETS),] # select rows that contain "from"
tmp2 = tmp[,!duplicated(names(tmp))] # delete columns that have duplicated column names
res = as_tibble(tmp2) # convert to tibble

Для секции очистки я сделал это шаг за шагом, наблюдая за данными. Конечно, есть много способов выполнить одну и ту же задачу.

...