0

コード:

A <- matrix(NA, nrow = 10, ncol = 3)
colnames(A) <- paste('trial', 1:3)

3番目の列に次とは異なる名前を付けたいと思いますtrial 3:どうすればよいですか?

今いいよ:

library(vars)
data(Canada)
var.2c <- VAR(Canada, p = 2, type = "const")
pred <- predict(var.2c, n.ahead = 8, ci = 0.95)

の最初の値を確認したい場合は、ここで返されるメソッドpredに応じて、入力する必要がありますpredict

> pred$fcst$e[1]
[1] 962.6557

e必要な値を取得するには、時系列名を指定する必要があったことがわかります。上記のコードが関数に挿入された場合、pred$fcst$e[1]時系列名を指定せずに呼び出すことはできません。そのため、別の時系列データフレームをカスタム関数に渡すことはできません。

例:X時系列データフレームとします。それで

pred.var <- function(X) {
   var.2c <- VAR(X, p = 2, type = 'const')
   pred <- predict(var.2c, n.ahead = 8, ci = .95)
   # return(pred$fcst$...) # Here lies the issue, because function must know X column name
}

上記の例からわかるように、関数は予測を返す必要pred.varがある列の名前を知っているX必要がありますが、から読み取られない限りそれはわかりませんX

何か案が?

ありがとう、

4

2 に答える 2

1

どのようにそのことについて?

colnames(A) <- c("trial1","trial2","something-different")

head(A)
     trial1 trial2 something-different
[1,]     NA     NA                  NA
[2,]     NA     NA                  NA
[3,]     NA     NA                  NA
[4,]     NA     NA                  NA
[5,]     NA     NA                  NA
[6,]     NA     NA                  NA

もちろん、「何か違う」というのはどんな名前でもかまいません。

于 2012-09-21T16:41:17.827 に答える
1

$eリストの要素には、またはのいずれかでアクセスできます[["e"]]。2番目の要素では、任意の文字変数を使用できます。したがって、これら2つのことは同じ価値をもたらします。

pred$fcst$e[1]
pred$fcst[[ colnames(Canada)[1] ]][1]
于 2012-09-21T16:49:35.110 に答える