Экспорт очищенных данных в один CSV - PullRequest
0 голосов
/ 08 октября 2018

Мне удалось сделать скребок для сбора информации о выборах в R(rvest), но сейчас я борюсь с тем, как сохранить данные не в отдельных CSV-файлах , а в одном CSVfile .

Вот мой рабочий код, где я могу вырезать страницы 11,12,13 отдельно.

library(rvest)
library(xml2)

do.call(rbind, lapply(11:13, 
                  function(n) {
url <- paste0("http://www.cvk.gov.ua/pls/vnd2014/WP040?PT001F01=910&pf7331=", n)
mi <- read_html(url)%>% html_table(fill = TRUE)
mi[[8]]

file <- paste0("election2014_", n, ".csv")
if (!file.exists(file)) write.csv(mi[[8]], file) 
Sys.sleep(5)
}))

Я попытался сделать это в конце, но это не работает, как я ожидал

write.csv(rbind(mi[[8]],url), file="election2014.csv") 

Ответы [ 2 ]

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

попробуйте это:

library(rvest)
library(tidyverse)


scr<-function(n){
  url<-paste0("http://www.cvk.gov.ua/pls/vnd2014/WP040?PT001F01=910&pf7331=",n)

 df=read_html(url)%>%
    html_table(fill = TRUE)%>%
    .[[8]]%>%
    data.frame()
 colnames(df)<-df[1,] 
 df<-df[-1,]
 }

res<-11:13%>%
  map_df(.,scr)
write.csv2(res,"odin_tyr.csv")
0 голосов
/ 08 октября 2018

Я не смог заставить ваш код работать, но вы можете попробовать создать пустой фрейм данных перед запуском вашего кода, а затем сделать это перед записью файла csv с полными данными:

df   = rbind(df,mi[[8]])

Вы также можете рассмотреть возможность преобразования ваших CSV-файлов в один с помощью пакета purrr:

files = list.files("folder_name",pattern="*.csv",full.names = T)

df = files %>%
  map(read_csv) %>%
  reduce(rbind)
...