When list items are not named, you can refer to them by their index in the list using double bracket syntax. For example, the first item has index 1, so you would extract this element like list[[1]]
.
In your case, the object p
is a list, and its first item is an unnamed list which contains the table as shown in your question. You can extract the forecasts like so:
p[[1]]$Forecast
The first element of this vector is 10.02798, which is what you're after. So you can do
p[[1]]$Forecast[1]
The first two list items in p
are not named for whatever reason, thus the double bracket syntax is required to get the first item in p
. But the list items within that item are named, so you can use the $
syntax for those.
If you want to remain consistent with your extraction syntax, you can instead do
p[[1]][["Forecast"]][1]
Or even
p[[1]][[1]][1]
I think p[[1]]$Forecast[1]
is just fine though.
In general, to view the structure of an object, you can use the str()
function. In this case:
str(p)
#List of 9
# $ :List of 9
# ..$ Forecast : num [1:5] 10 10.1 10.1 10.1 10.1
# ..$ exactVar : num [1:5] 1.06 1.31 1.5 1.66 1.82
# ..$ exactSD : num [1:5] 1.03 1.15 1.22 1.29 1.35
# ..$ uppernp : num [1:5] 12 12.2 12.4 12.7 12.9
# ..$ lowernp : num [1:5] 7.59 7.33 7 7.03 6.73
# ..$ meanvalnp: num [1:5] 9.86 9.83 9.88 9.82 9.83
# ..$ limitVar : num [1:5] 1.06 1.31 1.5 1.66 1.82
# ..$ limitSD : num [1:5] 1.03 1.15 1.22 1.29 1.35
# ..$ sigma2 : num 1.06
# $ :List of 9
# ..$ Forecast : num [1:5] 10 10.1 10.1 10.1 10.1
# ..$ exactVar : num [1:5] 1.07 1.43 1.7 1.93 2.14
# ..$ exactSD : num [1:5] 1.04 1.2 1.3 1.39 1.46
# ..$ uppernp : num [1:5] 12 14.2 15.7 17.7 20.2
# ..$ lowernp : num [1:5] 5.96 4.02 1.89 -0.29 -2.69
# ..$ meanvalnp: num [1:5] 9.03 9.04 9.01 8.91 8.97
# ..$ limitVar : num [1:5] 1.07 1.43 1.7 1.93 2.14
# ..$ limitSD : num [1:5] 1.04 1.2 1.3 1.39 1.46
# ..$ sigma2 : num 1.07
# $ z : Time-Series [1:1000] from 1 to 1000: -0.829 0.1149 1.261 -0.0427 0.1901 ...
# $ seed : logi NA
# $ limiting: logi TRUE
# $ bootpred: logi TRUE
# $ B : num 1000
# $ predint : num 0.95
# $ name : chr "fit"
# - attr(*, "class")= chr "predarfima"
This shows that p
is a list with 9 items, the first of which is itself a list with 9 items and doesn't have a name. This has an item called Forecast
which is the vector you want.