2013-11-28 3 views
0

Я пытаюсь очистить этот сайт http://www.hockeyfights.com/fightlog/, но с трудом помещаю в хороший кадр данных. Пока у меня есть это:Преобразование скрещенных данных R с использованием readHTMLTable()

> asdf <- htmlParse("http://www.hockeyfights.com/fightlog/1") 
> asdf.asdf <- readHTMLTable(asdf) 

Тогда я получаю этот гигантский список. Как преобразовать это в 2-х столбцовый фреймворк, который имеет только имена игроков (которые были в битве) с n рядами (количество боев)?

Спасибо за вашу помощь заранее.

+1

Непонятно, что вы ищете. вы можете показать некоторые строки ожидаемого результата. – agstudy

ответ

0

Это выход, который вы после?

require(RCurl); require(XML) 
asdf <- htmlParse("http://www.hockeyfights.com/fightlog/1") 
asdf.asdf <- readHTMLTable(asdf) 

Во-первых, сделать таблицу каждого игрока и количество боев они были в ...

# get variable with player names 
one <- as.character(na.omit(asdf.asdf[[1]]$V3)) 
# get counts of how many times each name appears 
two <- data.frame(table(one)) 
# remove non-name data 
three <- two[two$one != 'Away/Home Player',] 
# check 
head(three) 
one Freq 
1 Aaron Volpatti 1 
3 Brandon Bollig 1 
4  Brian Boyle 1 
5 Brian McGrattan 1 
6  Chris Neil 2 
7 Colin Greening 1 

Во-вторых, сделать таблицу, кто в каждом бою ...

# make data frame of pairs by subsetting the vector of names 
four <- data.frame(away = one[seq(2, length(one), 3)], 
        home = one[seq(3, length(one), 3)]) 
# check 
head(four) 
      away   home 
1 Brian Boyle  Zdeno Chara 
2 Tom Sestito  Chris Neil 
3  Dale Weise Mark Borowiecki 
4 Brandon Bollig Brian McGrattan 
5 Scott Hartnell  Eric Brewer 
6 Colin Greening Aaron Volpatti 
+0

Да. Но могу ли я задать еще одну вещь? Как бы вы поместили имена в каждый столбец. Итак, если бы Аарон Волпатти и Брэндон Боллиг сражались, Волпатти был в col1, Боллиг был бы в col2. Затем последовал Диллон в col1, МакГраттан в col2. Спасибо за помощь! – user1769069

+0

@ пользователь1769069 сделано. Если это ответит на ваш вопрос, просьба указать [принять ответ] (http://meta.stackexchange.com/a/5235). – Ben

Смежные вопросы