2017-05-15 17 views
0

複数の代用後にyハットの得点を得ることが最終的には望みますが、アメリアは適合値を提供しません。私は特定のデータセットでそれを行うコードがありますが、私はデータセットに関係なくこれを行う関数を作ろうとしています。ような何か:num.impamelia、またはmで使用されるインピューテーションの数がある複数の代入後にyハットを計算する関数で、アメリアの代入を呼び出す

yhat<-function(a.out,num.obs,num.imp,model.qe){} 

。私は立ち往生午前ここは、しかし、次のとおりです。

a.outamelia対象とnames(a.out$imputations)[1]戻り"imp1"であれば、なぜa.out$imputations$names(a.out$imputations)[1]a.out$imputations$"imp1"と同じものを返しませんか?

a.out$imputations$names(a.out$imputations)[1]については、RはError: attempt to apply non-functionと表示しています。

個々の代入と変数内の汎用コールをどのように作成できますか?アメリアのドキュメント

library(Amelia) 

data(africa) 
a.out <- amelia(x = africa, cs = "country", ts = "year", logs = "gdp_pc") 

a.out$imputationsから取ら

+0

を行うことができ

数値指標によって完全に個々の値を抽出するために、私はあなたの質問を理解するのに苦労しています。今まであなたの機能に何を試しましたか?また、質問そのものを明確にすることが役に立ちます。 –

+0

申し訳ありません。だから、私はアメリアオブジェクト、 'a.out'を持っています。私は個々の価値観を求めたい。例えば、最初の代入から 'a.out $ imputations $ imp1 [1,1]'を使って最初の変数の最初の観測を得ることができます。しかし、私は最後の部分を 'a.out $ imputations [i、j、k]'のような関数で定義したいと思います。ここでiは代入、jは変数、kは観測です。たとえば、i = 1、j = 1、k = 1の場合、 'a.out $ imputations [i、j、k]'は 'a.out $ imputations $ imp1 [1,1]'と等価になります。 –

答えて

0

例は、リスト内の

str(a.out$imputations) 

Elementsはそれぞれ帰属名前または数値インデックス

head(a.out$imputations$imp1) 
head(a.out$imputations[["imp1"]]) 
head(a.out$imputations[[1]]) 

によって呼び出すことができるリストでありますデータフレームです。データフレームは単なる特定の種類のリストであり、そのようにして要素を呼び出すことができます。

head(a.out$imputations[[1]]$country) 
head(a.out$imputations[[1]][["country"]]) 
head(a.out$imputations[[1]][[2]]) 
head(a.out$imputations[[1]][2]) 

これらのメソッドの最後は、1列のデータフレームを返すという点で残りとは異なりますが、他のメソッドはベクターを返します。あなたはf.ex

a.out$imputations[[1]][3, 2] 

または

a.out$imputations[[1]][[2]][3] 
+0

ありがとう! '[]]'二重括弧は私にとって初めてのものです。私は最初に頭を跳ねたときにそれを逃したと思う。 –

+0

@JaySchylerRaadt: '?" [["' 'や'?Extract']を呼び出すことによってドキュメント内の情報を見つけることができますが、少し濃く見えるかもしれません。情報はこのサイトにも広がっていますが、あなたが探しているものがわからないと見つけにくく、あなたがいても奇妙な場所にポップアップします。たとえば、[ここ](http://stackoverflow.com/questions/37507521/named-tuples-in-r/37507740#37507740)ここで質問タイトルは二重角括弧に関する情報を含んでいることをほとんど示さない。 – AkselA

関連する問題