Я думаю, что ваша проблема, вероятно, в:
myfile <- file.path(R(), paste0(mytime, "_", i, ".csv"))
Поскольку R считает R()
функцией.
Error in R() : could not find function "R"
Вы можете изменить его на getwd()
, если хотите (не забудьте сначала указать рабочий каталог setwd()
) или указать другой путь.
Кроме того, здесь: write.csv2(final, file = myfile, sep = "", row.names = FALSE, col.names = FALSE, quote = FALSE, append = FALSE)
, вы забыли написать paste()
, и, для убеждения, вы можете удалить используемые по умолчанию аргументы.
write.csv2(final, file = paste(myfile, sep = "" ))
# Edit
Это, вероятно, не самый эффективный способно это, вероятно, сделает свое дело.Основная проблема заключается в том, что вы добавляете объект list3 / файл csv к индексу URL.Если вы создадите новый индекс для pages3, вы можете переустанавливать его каждый раз.
setwd("Your working directory path")
baseurl <- "http://zoeken.kvk.nl/Address.ashx?site=handelsregister&partialfields=&q=010"
pages3 <- list()
#Counter for the url loop
i <- 1
#Counter for the appended csv file/ list object pages3
k <- 1
for(i in 1:99999){
#Read JSON file by i index
mydata <- RJSONIO::fromJSON(paste0(baseurl,i), flatten=TRUE)
#Appending to the Pages3 list object by k index
pages3[[k]] <- mydata$resultatenHR
# Increasing the k counter
k <- k + 1
options(timeout = 4000000)
if(i %% 100 == 0) {Sys.sleep(5)}
if(i %% 1000 == 0) {
final_df <- do.call(rbind, pages3)
final <- Reduce(function(x,y) merge(x, y, all=TRUE), final_df)
mytime <- format(Sys.time(), "%b_%d_%H_%M_%S_%Y")
myfile <- file.path(getwd(), paste0(mytime, "_", i, ".csv"))
write.csv2(final, file = paste(myfile, sep = "" ))
#Resetting the pages3 list object
pages3 <- NULL
#Resting the k index counter
k <- 1
}
}
Однако, в зависимости от вашего компьютера / размера файлов, которые вы пытаетесь импортировать, возможно, будет более эффективно сохранять и разбивать на различные файлы CSV, когда вы закончите импортировать все URL-адреса.