2016-10-31 20 views
-1

アメリアは、data.frame入力に欠損値を代入するために使用されています。そのプロセスは機能しているようです。入力データセットは等カラムヘッダーheader_1、header_2を有するアメリアコマンドがある:rクラスアメリアオブジェクトをdata.frameに戻す

imp1<-amelia(input, m=1, idvars = idvars) 

str(imp1$imputations, 1)str(imp1$imputations, 1) 

からの結果は:

$ imp1:'data.frame': 1725 obs. of 29 variables: 
- attr(*, "class")= chr [1:2] "mi" "list" 

コマンド

xxx<-as.data.frame(imp1[[1]]) 

データを作成するフレーム、しかし、変数名、列のヘッダーは

imp1.header_1 
imp1.header_2 
etc 

元の変数を保持するアメリア、ヘッダ名を実行するための正しい方法は何であるに改名されましたか? 元の列ヘッダーを持つdata.frameはどのように取得できますか?

答えて

1

imp1$imputationsには、データフレームのリストが含まれています。 m = 1を指定したため、そこには1つのデータフレームしかありません。したがって、imp1$imputations$imp1でアクセスでき、as.data.frameコールについては心配する必要はありません。例えば

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

head(a.out$imputations$imp1) 

    year  country gdp_pc infl trade civlib population 
1 1972 Burkina Faso 377 -2.92 29.69 0.5000000 5848380 
2 1973 Burkina Faso 376 7.60 31.31 0.5000000 5958700 
3 1974 Burkina Faso 393 8.72 35.22 0.3333333 6075700 
4 1975 Burkina Faso 416 18.76 40.11 0.3333333 6202000 
5 1976 Burkina Faso 435 -8.40 37.76 0.5000000 6341030 
6 1977 Burkina Faso 448 29.99 41.11 0.6666667 6486870 
+0

あなたは($インピューテーションの$のIMP1のa.out)構文の説明を指すことができます。コマンドyyy < - (a.out $ imputations $ imp1)は、正しい結果を生成します。 –

+0

あなたはあなたが望むものを手に入れていますか?基本的に 'str(a.out)'を見ると、名前付き要素を持つリストであることがわかります。 '$ imputations'パーツは、あなたがリスト内のリスト(帰属データセットを含む)にあなたを連れて行き、' $ imp1'パーツはリスト(特定のデータフレーム)から特定の要素を得ます。 'm = 4'で再度実行すると、' $ imputations'は4つのデータセットのリストになることがわかります。あなたは 'a.out $ imputations $ imp1'、' a.out $ imputations $ imp2'、 'a.out $ imputations $ imp3'などでそれらのそれぞれにアクセスすることができます。 –