эффективный способ вызова и извлечения выходных данных из функции onlineCPD - PullRequest
0 голосов
/ 31 мая 2019

Есть ли более эффективный метод при вызове и извлечении вывода из функции $currmu из onlineCPD с использованием цикла, когда входящие данные находятся в онлайн-форме (потоковая передача)?

library(ocp)
set.seed(999)

#data
df <- c(rnorm(20,5,1), rnorm(30,15,2), rnorm(20,7,3))


#online method
i <- 1
online.result <- vector(mode="numeric", length=length(df))
while(i <= length(df)){
  online.result[i] <- as.numeric((onlineCPD(df[1:i])$currmu)[i])  #problem here
  i = i + 1
}

#offline method
offline <- onlineCPD(df)
offline.result <- unlist(offline$currmu)


identical(offline.result, online.result) #TRUE

Как вы можете видетьиз переменной offline, она выплевывает много информации, это нормально, учитывая, что это автономная версия.Однако в цикле while мы будем продолжать вызывать и извлекать этот очень специфический i-й $currmu в качестве входных данных.

Было бы проблемой, когда df становится достаточно большим и объединяется во вложенныесписок.

...