如何在此R数据类型中打印单个列?

时间:2011-04-23 17:32:46

标签: r

我是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列的向量。我用Google搜索并认为我应该说fc$Forecast。但是当我这样做时,我会打印NULL。非常感谢您的时间/帮助。感谢。

根据要求:输出输出的最后几行:

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元组的墙。

4 个答案:

答案 0 :(得分:2)

你得到的是print.forecast的输出,它不是内部预测对象的实际内容(从str(fc)的片段可以看出。)...第一列的名称不是“预测”,而不是“点预测”(由于嵌入的空间需要引用)。所以在看了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`

答案 1 :(得分:2)

你想要fc$mean。这完整记录在forecast()的帮助文件中。

答案 2 :(得分:0)

要从读取的数据中打印一列,

#Reading Data
data <- fread("data.csv")

#printing Data
str(data)

输出

id | Name | Father's Name | Birth
1  | Abel | Tilaun        | 1994 BC
2  | Jon  | Snow          | 283 AC
3  | Ned  | Stark         | 263 AC

下一步是打印您选择的单列,可以是NameBirth。在此示例中,我将使用名称

#use this to print the single coloumn    
data[,'Name',drop=FALSE]

输出

id | Name  
1  | Abel  
2  | Jon   
3  | Ned  

或另一种方式是使用$,它用于引用数据框中的列表或列中的元素。

data$Name #This will print out everything that is contained in coloumn

希望这对您有所帮助。

答案 3 :(得分:-1)

我得到了很多。我只是将我需要的数据从输出复制并粘贴到文本文件并使用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