看板 R_Language 關於我們 聯絡資訊
※ 引述《peterwu76 (金岡)》之銘言: : : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : : 入門(寫過其他程式,只是對語法不熟悉) : : [問題敘述]: : : 讓R每5分鐘執行一次資料下載 : 想讓儲存的檔案名稱變成數字,如第一筆檔案為 1.xlsx,第二筆為 2.xlsx, : 但一直噴錯出來。 : 另外,如果用上篇的code,好像常常跑10小時就停了,沒有跳出紅字。 : : [程式範例]: : cat(rep("\n",64)) : library(jsonlite) : library(RCurl) : library(httr) : library(xlsx) : for (i in 1:(60*24*5/5)){ #創建 i 等於數字 : while (TRUE) { : if (format(Sys.time(), "%S") == "01") return("Downloading") else : Sys.sleep(300) : Dataurl<-url("https://airbox.edimaxcloud.com/devices?token=EA81A1FA-8EDB- : 4CA0-B07B-A881C74B0401") : DATA<-fromJSON(Dataurl) : Table<-data.frame(DATA) : Sites<-c("74DA38C7D1C2","74DA38C7D0B0","74DA38C7D1C4","74DA38C7D1CA", : "74DA38C7D0A2","74DA38C7D0A0","74DA38C7D09C","74DA38C7D09E", : "74DA38C7D0AE","74DA38C7D1D2","74DA38AF4860","74DA38AF47F8", : "G0000000000E") : Table <- subset(Table, devices.id %in% Sites) : datenum <- i : toString(datenum) # 將 i 命名為datenum再改為字串 : outfile = paste("D:\\", datenum, sep = "") : write.xlsx(Table, file = outfile) : } : } : : [環境敘述]: : : R-Studio : : [關鍵字]: : : 選擇性,也許未來有用 : : Sys.time sys.sleep time loop 其實可以寫得很簡單,請參考: library(httr) library(pipeR) library(xlsx) library(data.table) url <- "https://airbox.edimaxcloud.com/devices" Sites <- c("74DA38C7D1C2","74DA38C7D0B0","74DA38C7D1C4","74DA38C7D1CA", "74DA38C7D0A2","74DA38C7D0A0","74DA38C7D09C","74DA38C7D09E", "74DA38C7D0AE","74DA38C7D1D2","74DA38AF4860","74DA38AF47F8", "G0000000000E") while (TRUE) { # i是從零點到現在共度過幾分鐘 i <- hour(Sys.time()) * 60 + minute(Sys.time()) # i不能被5整除的話,就休息一分鐘,每分鐘起來跑才不會漏 if (i %% 5 != 0) Sys.sleep(60) # 直接取得資料,然後轉成data.table後直接寫出 GET(url, query = list(token = "EA81A1FA-8EDB-4CA0-B07B-A881C74B0401"), user_agent("Chrome/59.0.3071.115")) %>>% content %>>% `[[`(2) %>>% lapply(as.data.table) %>>% rbindlist %>>% `[`(id %in% Sites) %>>% write.xlsx(file = paste0("D:/", i/5, ".xlsx")) } -- R資料整理套件系列文: magrittr #1LhSWhpH (R_Language) https://goo.gl/72l1m9 data.table #1LhW7Tvj (R_Language) https://goo.gl/PZa6Ue dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/I5xX9b tidyr #1Liqls1R (R_Language) https://goo.gl/i7yzAz pipeR #1NXESRm5 (R_Language) https://goo.gl/zRUISx -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.190.147 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1500567132.A.432.html
peterwu76: 感謝前輩的分享!! 晚點試試看! 07/21 17:58