R код: webscraping - PullRequest
       5

R код: webscraping

3 голосов
/ 21 января 2012

Я пытаюсь создать таблицу OECD с помощью R.

library(XML)
OECD <- readHTMLTable('http://stats.oecd.org/Index.aspx?DataSetCode=MEI_CLI')
OECD<- data.frame(rawOECD[[1]])

Мне удалось получить базовую таблицу с приведенным выше кодом, но у меня возникли проблемы с получением ее в презентабельной форме.

Буду признателен за вашу помощь.

С уважением,

Адам

Ответы [ 2 ]

7 голосов
/ 21 января 2012

Как насчет этого?

library(XML)
OECD <- readHTMLTable('http://stats.oecd.org/Index.aspx?DataSetCode=MEI_CLI',stringsAsFactors = FALSE)

n.rows <- unlist(lapply(OECD, function(t) dim(t)[1]))
out <-as.data.frame(OECD[[which.max(n.rows)]])
colnames(out) <-c("Date",out[7,-ncol(out)]) #add row names
out <-out[-(1:9),]  #clean up
0 голосов
/ 27 сентября 2015

Альтернативой использования HTML для создания абстракции «представления» (которое может измениться, по крайней мере, в соответствии с вашими запросами данных) и, возможно, для параметризации ваших запросов данных из R, является рассмотрение SDMX.стандартный формат обмена, поддерживаемый порталом статистики ОЭСР.Если вы нажмете на экспорт, выберите «SDMX» и скопируйте веб-запрос SDMX-запроса.

Затем в R вы можете легко использовать rsdmx пакет:

require(rsdmx)
sdmx <- readSDMX("http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/MEI_CLI/LOLITOAA+LOLITONO+LOLITOTR_STSA+LOLITOTR_GYSA+BSCICP03+CSCICP03+LORSGPRT+LORSGPNO+LORSGPTD+LORSGPOR_IXOBSA.AUS+AUT+BEL+CAN+CHL+CZE+DNK+EST+FIN+FRA+DEU+GRC+HUN+IRL+ISR+ITA+JPN+KOR+LUX+MEX+NLD+NZL+NOR+POL+PRT+SVK+SVN+ESP+SWE+CHE+TUR+GBR+USA+EA19+G4E+G-7+NAFTA+OECDE+OECD+ONM+A5M+BRA+CHN+IND+IDN+RUS+ZAF.M/all?startTime=2013-09&endTime=2015-08")
df <- as.data.frame(sdmx)

rsdmx теперь также предоставляет возможность запрашивать данные у известных поставщиков данных, и ОЭСР является частью этого списка.Для этой функции вам нужно будет использовать версию rsdmx> = 0.5 (сейчас только на Github).Ниже приведен пример:

sdmx <- readSDMX(providerId = "OECD", resource = "data", flowRef = "MEI_CLI",
                key = "all", key.mode = "SDMX",
                start = "2013-09", end = "2015-08")
df <- as.data.frame(sdmx)

Примечание. Учтите также, что вы можете использовать тот же формат SDMX и rsdmx для чтения метаданных, таких как data structure definition (также предоставленный ОЭСР).1014 * Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...