R在R中循环期间临时写入csv文件

R在R中循环期间临时写入csv文件,r,for-loop,export,R,For Loop,Export,我有一个从URL下载数据的循环。现在我希望每x次迭代,到目前为止的信息都会被写下来 因此,我有以下代码: baseurl <- "http://zoeken.kvk.nl/Address.ashx?site=handelsregister&partialfields=&q=010" pages3 <- list() for(i in 1:99999){ if(i < 10){ mydata <- RJSONIO::fromJS

我有一个从URL下载数据的循环。现在我希望每x次迭代,到目前为止的信息都会被写下来

因此,我有以下代码:

    baseurl <- "http://zoeken.kvk.nl/Address.ashx?site=handelsregister&partialfields=&q=010"
    pages3 <- list()

for(i in 1:99999){


if(i < 10){
    mydata <- RJSONIO::fromJSON(paste0(baseurl,"00000",i), flatten=TRUE)
  }
  if(i < 100 & i >= 10){
    mydata <- RJSONIO::fromJSON(paste0(baseurl,"0000",i), flatten=TRUE)
  }
  if(i < 1000 & i >= 100){
    mydata <- RJSONIO::fromJSON(paste0(baseurl,"000",i), flatten=TRUE) 
  }

  if(i < 10000 & i >= 1000){
    mydata <- RJSONIO::fromJSON(paste0(baseurl,"00",i), flatten=TRUE)
  }  
  if(i < 100000 & i >= 10000){
    mydata <- RJSONIO::fromJSON(paste0(baseurl,"0",i), flatten=TRUE) 
  }
  if(i < 1000000 & i >= 100000){
    mydata <- RJSONIO::fromJSON(paste0(baseurl,i), flatten=TRUE) 
  }




    mydata <- RJSONIO::fromJSON(paste0(baseurl,i), flatten=TRUE) 

    pages3[[i]] <- mydata$resultatenHR
    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(R(), paste0(mytime, "_", i, ".csv"))
      write.csv2(final, file = myfile, sep = "", row.names = FALSE, col.names = FALSE,
                 quote = FALSE, append = FALSE)
      }
  }

  }
}

然而,在这段时间里,什么也救不了?代码哪里出了问题?感谢您的见解。

我认为您的问题可能在于:


myfile函数R做什么?我希望它不是函数,因为我犯了一个错误。。。这意味着要写入的路径,即c:\R\…我尝试在回答中重放感谢,它部分起作用,因此我正在实现…现在,在我的案例中,R会使每x 2000次迭代都成为一个新的csv文件。但是,R将所有数据相加,所以文件1:2000行,文件2:4000行,等等。但是,我希望文件1:2000行,文件2:2000行,等等。。你知道有什么新的吗?谢谢,我现在正在测试。我进行每2000次分割的原因是,否则文件会变得太大。根据系列的不同,页面列表包含>100000个元素和>100 mb。因此拆分是因为它是可管理的。我曾经让它在不拆分文件的情况下运行,页面列表超过25gb,然后计算机/R崩溃……这是因为url不能正常工作。例如,当i=200时,url将为,这将导致您进入一个空页面。我知道,这就是我添加其他if语句的原因,请参阅我在begin post中添加的内容。。。。。还有什么建议吗?
Error in R() : could not find function "R"
write.csv2(final, file = paste(myfile, sep = "" ))
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
  }

}