2013-10-25 2 views
3

Я пытаюсь загрузить следующий URL в R dataframe:Загрузить файл xls из url в dataframe (Rcurl)?

http://www.fantasypros.com/nfl/rankings/qb.php/?export=xls

(Это ссылку 'Экспорт' на общедоступной странице: http://www.fantasypros.com/nfl/rankings/qb.php/)

Однако, я не уверен, как «разобрать» данные? Я также хочу автоматизировать это и выполнять его еженедельно, поэтому мы будем очень благодарны за любые мысли о том, как это сделать в недельный рабочий процесс. Были Google поиск и чистящее StackOverflow в течение нескольких часов в настоящее время без толка ... :-)

Спасибо,

Джастину

Покушения Код:

getURL("http://www.fantasypros.com/nfl/rankings/qb.php?export=xls")

Это просто дает мне строку, которая начинается как:

[1] "FantasyPros.com \t \nWeek 8 - QB Rankings \t \nExpert Consensus Rankings (ECR) \t \n\n Rank \t Player Name \tTeam \t Matchup \tBest Rank \t Worst Rank \t Ave Rank \t Std Dev \t\n1\tPeyton Manning\tDEN\t vs. WAS\t1\t5\t1.2105263157895\t0.58877509625419\t\t\n2\tDrew Brees\tNO\t vs. BUF\t1\t7\t2.6287878787879\t1.0899353819483\t\t\n3\tA...

+0

* Я также забыл добавить, что мне также нужно учитывать ИСКЛЮЧЕНИЕ первых 4 строк файла xls (5-я строка = заголовки столбцов) – hianalytics

ответ

3

Добро пожаловать в R. Похоже, вы любите делать свой анализ в Excel. Это совершенно нормально, но тот факт, что вы просите обходить данные из Интернета И спрашивают о R, я думаю, что можно с уверенностью предположить, что вы начнете искать программирование ваших анализов - это путь.

Это то, что вы действительно хотите сделать, это сканирование в Интернете. Есть тонны примеров того, как это сделать с R, прямо здесь, на SO. Ищите такие вещи, как «веб-соскабливание», «сканирование» и «скрипинг экрана».

Хорошо, диалог в сторону. Не беспокойтесь о захвате данных в формате XL. Вы можете анализировать данные напрямую с помощью R. Большинство веб-сайтов используют согласованное соглашение об именах, поэтому использование цикла for и построение URL-адресов для ваших наборов данных будет простым.

Ниже приведен пример анализа вашей страницы, непосредственно с помощью R, на data.frame, который очень похож на табуляционные данные в XL.

## load the packages you will need 
# install.packages("XML") 
library(XML) 

## Define the URL -- you could dynamically build this 
URL = "http://www.fantasypros.com/nfl/rankings/qb.php" 

## Read the tables form the page into R 
tables = readHTMLTable(URL) 

## how many do we have 
length(tables) 

## look at the first one 
tables[1] 
## thats not it 

## lets look at the 2nd table 
tables[2] 

## bring it into a dataframe 
df = as.data.frame(tables[2]) 

Если вы используете R в первый раз, вы можете установить внешние пакеты довольно легко с помощью команды install.packages("PackageNameHere"). Однако, если вы серьезно относитесь к изучению R, я бы изучил использование RStudio IDE. Это действительно сглаживало кривую обучения для меня на тонне уровней.

+0

+1 для того, чтобы не загружать файлы и использовать 'readHTMLTable'! – tcash21

2

Возможно, вы используете только download.file и read.xls из библиотеки gdata. Я не думаю, что вы можете пропустить строки, читающие файлы .xls, но вы можете поставить аргумент pattern, чтобы он читал в файле, пока этот шаблон не будет замечен в вашей строке данных.

library(gdata) 
download.file("http://www.fantasypros.com/nfl/rankings/qb.php?export=xls", destfile="file.xls") 

ffdata<- read.xls("file.xls", header=TRUE, pattern="Rank") 

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

  • Нет связанных вопросов^_^