L oop Причинно-следственная связь в R для нескольких наборов данных и автоматический экспорт результатов - PullRequest
0 голосов
/ 30 апреля 2020

Мне нужны некоторые предложения о том, как решить эту проблему. У меня есть несколько объектов зоопарка, на которых я хочу выполнить анализ причинно-следственных связей в R, используя пакет омонимов, разработанный Google. Чтобы автоматизировать процесс, я хочу запустить al oop над объектами зоопарка и автоматически сохранить результаты в файл, который будет экспортирован в word или csv.

До сих пор мое решение заключалось в том, чтобы включить объекты зоопарка в список зоопарков с помощью

    zoolist<-list(ts1, 
                ts2,
                ts3 
                 )

, а затем запустить для l oop, например:

    for (i in zoolist)
{
  experiment_impact<-CausalImpact(i, 
                                  pre.period, 
                                  post.period, 
                                  model.args = list(nseasons = 7, season.duration = 1))
  summary(experiment_impact)
}

Код, похоже, работает, однако я не представляю, как экспортировать все выходные данные в формате csv или do c или в любом другом формате, при условии, что он компактен и удобочитаем.

Любая идея ? Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 01 мая 2020

Если единственное, что вы хотите сделать, - это записать сводку, точно так же, как на экране, вы можете использовать capture.output. Замените вторую строку в вашем l oop на:

capture.output(summary(experiment_impact), file = 'example.txt', append = T)

Более элегантным решением может быть использование lapply для запуска анализа каждого элемента в списке, так что вы получите список элементов вывода:

resultList = 
  lapply(
    zoolist, 
    CausalImpact, 
    pre.period, 
    post.period,
    model.args = list(nseasons = 7, season.duration = 1)
  )

Затем можно извлечь нужные значения из каждого из объектов CausalImpact в списке и отформатировать значения в data.frame, который можно вывести с помощью write.csv.

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