L oop поверх очищенных данных для сохранения данных в кадре данных в R - PullRequest
1 голос
/ 28 февраля 2020

Я новичок в R и в настоящее время пытаюсь почистить некоторые данные из Интернета. Проблема в том, что я хочу, чтобы код запускался каждые пять минут и после каждого запуска сохранял данные в кадре данных. Все данные должны быть сохранены в одном и том же кадре.

Пример. На веб-сайте имеются производственные данные, и я хочу добавить их к R:

A1      A2
100     200

Эти данные обновляются каждые 5 минут. Я хочу, чтобы каждый раз, когда он обновлялся (или выполнялся код), новые данные добавлялись к одному и тому же фрейму данных.

Result I want:
A1      A2     Time
100     200    28/02/2020 15:45:45
A1      A2     Time
103     199    28/02/2020 15:50:45
A1      A2     Time
90      194    28/02/2020 15:55:45 
……….

В настоящий момент я получаю только код, который перезаписывает результаты каждый раз, когда код запускается Код, который я сейчас имею, выглядит следующим образом:

library(rvest)
library(xml2)
library(plyr)

url <- "myurl"
content <- read_html(url)
dfNEW = data.frame()
Result <- content %>%
  html_node("#gauge")                         %>% 
  html_attrs()                                %>%
  `[`(c("dataA1", "dataA2"))
df <- as.data.frame(t(Result))
rownames(df) <- c()
df$Time <- Sys.time()

total <- rbind.fill(dfNEW, df)

У вас есть идеи, как заставить l oop делать то, что я хочу?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 февраля 2020

al oop может выглядеть так:

dfNEW <- data.frame()

for(i in seq(100){

  # code to generate new df
  df <- as.data.frame(t(Result))
  rownames(df) <- c()
  df$Time <- Sys.time()
  dfNEW <- rbind.fill(dfNEW, df)

  Sys.sleep(5*60)
  }

Таким образом, вам нужно привязать новую строку data.frame в каждом l oop к уже существующей.

...