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

时间:2018-04-26 07:57:57

标签: r for-loop export

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

因此我有以下代码:

declare
    date_value        char(10) := TO_CHAR( CURRENT_DATE, 'DD.MM.YYYY' );
    week_value        pls_integer := TO_NUMBER(TO_CHAR(CURRENT_DATE,'WW'));
    start_date_value  char(10) := TO_CHAR(TRUNC(CURRENT_DATE, 'IW'),'DD.MM.YYYY');
    end_date_value    char(10) := TO_CHAR(NEXT_DAY(TRUNC(CURRENT_DATE,'IW'),'SUNDAY'),'DD.MM.YYYY');
begin 
    htp.p('<< '||'Week'|| week_value ||' >> '|| start_date_value ||' - '|| end_date_value);
end;

然而,在此期间没有任何东西得到保存?我在哪里错误的代码?感谢您的见解。

1 个答案:

答案 0 :(得分:1)

我认为您的问题可能在:

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

这可能不是最有效的方法,但它可能会成功。 主要问题是您通过url索引追加pages3 list object / csv文件。如果您为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文件可能会更有效。