2016-05-23 5 views
1

hot.deckパッケージを使用してRでホットデッキ代入を行い、ここで説明する例に従ってテストしています:https://cran.r-project.org/web/packages/hot.deck/vignettes/Using_Hot_Deck_Data.pdf条件がlength> 1で、最初の要素のみが使用されます(RE:miceadds、MIDS)

データセットはデータ(isq99)です。私は作成された他の変数をスキップして、ホットデッキの結果について議論します。ここで私が何をやったかまさにです:

library(hot.deck) 
data(isq99) 
out <- hot.deck(isq99, sdCutoff=3, IDvars=c("IDORIGIN","YEAR")) 

私は、pの中音域の技術を使用して結果を組み合わせることにこだわっています。 3(2.3「中音域の使用」 - 私はそれが$インピューテーションを言う知っていますが、アメリアに変換する場合それはです):

Warning message: 
In if (class(dat.list) %in% "imputationList") { : 
    the condition has length > 1 and only the first element will be used 
:私はこれを行うと、私は次のエラーメッセージが表示されます

library(miceadds) 
out.mids <- datalist2mids(out$data) 

を - そこにある

  Length Class Mode 
data    5 mi  list 
affinity 14775370 -none- numeric 
donors   4661 -none- list 
draws   4661 -none- list 
max.emp.aff  4661 -none- numeric 
max.the.aff  4661 -none- numeric 

私は(多重代入データの5つのバージョンがあり、予想通りある)$データを拒絶ている理由見当がつかない:

は、ここで私は、元のホットデッキ結果の構造を見れば何が起こるかです私が尋ねるものuldは長さを最初に1セットに減らすことを知っていましたか?

何か助けていただければ幸いです。謝罪する:書式設定するか、何かを忘れてしまった場合 - 他に何が必要なのか教えてください。オブジェクトは複数のクラスを持っている(または単に後方%in%コールを書いた)とチェックしていないことを予想していない、miceaddsパッケージ/機能の作者の一部にバグのように見えます

おかげ

+0

おそらく、if文のブール値に 'any'または' all'を入れたいかもしれません。 – Carl

+0

@Carlはそれを変更することは可能でしょうか? if文はパッケージ自体からのものです。上で説明した実際のRコードは、リンクされた論文で説明したとおり、まさに私がやったことです。 – egon

答えて

1

@ Richardの提案によると、私はmiceaddsのメンテナーに書いていました。彼はできるだけ早く返事を返しました。私は非常に感謝しています。

これは単なる警告であり、バグではなく、実際にはmidsオブジェクトが作成されたことになります。これは私の全面的なnoob監督でした。 miceaddsの作者は、パッケージの将来のバージョンで警告を変更/削除する可能性があることに注意しました。

1

引数はあらかじめdat.listで与えられています。いずれにせよ、%in%は、クラスをチェックする適切な方法ではありません。 CRANソースはdatalist2mids.Rです。私はmaintainer("miceadds")の電子メールアドレスを使用してバグレポートを提出します。

+0

私はあなたの提案に応じてメンテナーに書いており、応答が出たら直ちに回答としてマークするか、応答がない場合は数日後にマークします。 – egon

関連する問題