Как напечатать один столбец в этом типе данных R? - PullRequest
1 голос
/ 23 апреля 2011

Я новичок в R. У меня есть вывод функции, которая при захвате в переменной утверждает, что это список.

> typeof(fc)
[1] "list"

Вот первые несколько строк о том, как fc выглядит

  Point       Forecast       Lo 80     Hi 80       Lo 95     Hi 95
  10229      -2.237542 -5.81116452  1.336080 -7.70292589  3.227841
  10230       1.683324 -3.19974731  6.566396 -5.78468918  9.151337
  10231       3.893685 -1.32257692  9.109948 -4.08389942 11.871270
  .......

Как создать вектор, скажем, только столбец Forecast этого типа. Я погуглил и решил, что должен сказать fc$Forecast. Но когда я это делаю, я напечатал NULL. Очень ценю ваше время / помощь. Спасибо.

По запросу: последние несколько строк из вывода dput:

Names = c("method", "model", "level", 
"mean", "lower", "upper", "x", "xname", "fitted", "residuals"
), class = "forecast")

И первые несколько строк.

structure(list(method = "ARIMA(4,0,2) with non-zero mean", model 
= structure(list(coef = structure(c(0.261848480125606, 0.55212561713038,       
0.00823985719608051, -0.051126398268002, -0.369141509818343, 
1.60863444159457, -0.0928857946719395, -0.0901626797717415, 
0.0526652165617547, -0.242259088064732, 0.164509902811429, 
-0.149744064351169, 0.108818836027556, -0.0143040675162776
), .Names = c("ar1", "ar2", "ar3", "ar4", "ma1", "ma2", "intercept", 
"S1", "C1", "S2", "C2", "S3", "C3", "S4", "C4")), sigma2 = 1.3269817639389, 
var.coef = structure(c(0.494

Между ними просто стена из 3 кортежей.

Ответы [ 3 ]

2 голосов
/ 25 апреля 2011

Вы хотите fc$mean.Это полностью задокументировано в файле справки для forecast().

2 голосов
/ 24 апреля 2011

Вы получаете выходные данные print.forecast, который на самом деле выглядит не так, как прогнозируемый объект внутри (как видно из фрагментов str (fc). AND ... Имя первого столбца не «Прогноз», а точнее «Точечный прогноз» (который нужно будет заключать в кавычки из-за встроенных пробелов). Поэтому, посмотрев на print.forecast с помощью getAnywhere, я предсказал, что вы получите желаемый вектор с очевидной модификацией этого (после выполнения примера в помощь (forecast.Arima):

> as.data.frame(forecast(fit))$`Point Forecast`
 [1] -0.7725430  0.4591482  0.8732595  1.0124943  1.0593135  1.0750607  1.0803599  1.0821453
 [9]  1.0827486  1.0829539   ### "works"

Поэтому ... попробуйте:

as.data.frame(fc)$`Point Forecast`
0 голосов
/ 24 апреля 2011

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

Не копируйте заголовки, если у них есть пробелы, это все портит:

Выше я скопировал ваш вывод:

df <- read.table(file="http://www.bertelsen.ca/R/dump.r")

df


     V1        V2        V3       V4        V5        V6
1 10229 -2.237542 -5.811165 1.336080 -7.702926  3.227841
2 10230  1.683324 -3.199747 6.566396 -5.784689  9.151337
3 10231  3.893685 -1.322577 9.109948 -4.083899 11.871270

Так что в этом случае я бы предположил, что вы хотите увидеть только df$V2

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