我设法在R(rvest)
中收集选举信息,但现在我很难将数据保存在不同的CSV文件中,而是保存在一个CSV文件中。
这是我的工作代码,在这里我可以分别丢弃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")
发布于 2018-10-08 12:12:13
试试这个:
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")
发布于 2018-10-08 08:56:29
我无法让您的代码工作,但是您可以尝试在运行代码之前创建一个空的数据框架,然后在编写包含完整数据的csv文件之前这样做:
df = rbind(df,mi[[8]])
还可以考虑使用purrr包将csv文件转换为一个文件:
files = list.files("folder_name",pattern="*.csv",full.names = T)
df = files %>%
map(read_csv) %>%
reduce(rbind)
https://stackoverflow.com/questions/52697899
复制相似问题