Как получить значение переменной из возврата функции в R - PullRequest
1 голос
/ 01 мая 2019

Вот пример:

myFun <- arima(x, order=c(0, 0, 1))
myFun

Когда я бегу, я получаю вывод:

Call:
arima(x = x, order = c(0, 0, 1))

Coefficients:
         ma1  intercept
      0.6023     0.1681
s.e.  0.0827     0.1424

sigma^2 estimated as 0.7958:  log likelihood = -130.7,  aic = 267.39

Я знаю, что могу получить значение aic по myFun$aic,но как я могу получить значение:

  • Коэффициенты, ма1, 0,6023
  • Коэффициенты, SE, 0,0827
  • Коэффициенты, перехват, 0,1681
  • sigman ^ 2 приблизительно, 0,7958
  • и т. д.

Я искал на странице справки help , но не знаю, как это сделать.

Ответы [ 2 ]

1 голос
/ 01 мая 2019

Мы можем использовать tidy/glance из broom, который может извлечь большую часть вывода за один вызов

library(broom)

rowr::cbind.fill(tidy(myFun), glance(myFun))
#       term    estimate  std.error     sigma    logLik      AIC      BIC
#1       ma1 -0.01357280 0.12869087 0.9847428 -140.3565 286.7129 294.5284
#2 intercept  0.07901125 0.09716588 0.9847428 -140.3565 286.7129 294.5284

Чтобы получить отдельные компоненты, проще проверить структуру

str(myFun)

тогда мы находим, что это имя list. Таким образом, извлекайте элементы, как при извлечении любых других элементов list, т. Е. С помощью $ или [[ для одного элемента list (по имени или индексу) и [ для нескольких элементов

Для получения дополнительной информации, мы можем проверить эту ссылку , а также

* * Данные тысяча двадцать-один
set.seed(24)
x <- rnorm(100)
myFun <- arima(x, order=c(0, 0, 1))
1 голос
/ 01 мая 2019

Чтобы получить коэффициенты, вы можете сделать coef(myFun) или myFun$coef

myFun$coef
#      ma1 intercept 
#0.9999998 5.4999988 

Сигма ^ 2, оцененная

myFun$sigma2
#[1] 2.750001

и стандартная ошибка

sqrt(diag(vcov(myFun)))
#      ma1 intercept 
#0.3162275 1.0041626 

и логарифмическая вероятность

myFun$loglik
#[1] -20.44634

данные

myFun <- arima(1:10, order=c(0, 0, 1))
myFun

#Call:
#arima(x = 1:10, order = c(0, 0, 1))

#Coefficients:
#         ma1  intercept
#      1.0000     5.5000
#s.e.  0.3162     1.0042

#sigma^2 estimated as 2.75:  log likelihood = -20.45,  aic = 46.89
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...