R: Запуск функции над несколькими объектами в наборе данных - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть данные, которые представляют поведение моих машин.Я хотел бы обнаружить точку изменения.

Первое: мой сценарий R успешно запущен, чтобы найти точку изменения для данных, которые включают в себя один компьютер (объект).

  library("changepoint")
  Onecpt = cpt.mean(df$prob)
  summary(Onecpt)

Теперь мои данные состоят из нескольких машин, как запустить функцию на этих машинах, затем я могу сделать сводку для каждой машины отдельно, и вот как я ожидаю, что скрипт будет выглядеть, ноКонечно, это не сработает:

df <- read_excel("C:..../changepoint/Data.xlsx" , "SHEET")
cpt_function <- function(dataset) {
#you implement this using whatever method you want
model <- cpt.mean(df$success,method="PELT",penalty="Manual",pen.value="2*log(n)")
return(model)
} 
results <- by(df, df$machine_id, cpt_function)

Моя главная цель - создать итоговую функцию для каждого после запуска основной функции cpt.mean, например:

summary(results$`16915976`)

Однако,Я получил очки изменений для всех машин в данных, а не только machine_id = 16915976.

1 Ответ

0 голосов
/ 20 февраля 2019

Я использовал df вместо аргумента функции dataset.Так и должно быть

model <- cpt.mean(dataset$prob,method="PELT",penalty="Manual",pen.value="2*log(n)")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...