2016-05-23 69 views
1

我正在使用hot.deck包進行R中的熱卡填充並按照此處描述的示例進行測試:https://cran.r-project.org/web/packages/hot.deck/vignettes/Using_Hot_Deck_Data.pdf條件長度> 1,只有第一個元素將被使用(RE:miceadds,MIDS)

該數據集是數據(isq99)。我將跳過創建的其他變量並討論熱點結果。這裏是正是我做了什麼:

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

我卡在使用上P中的中頻技術相結合的結果。 3(2.3「使用中頻」 - 我知道這說出來$插補但這是如果轉換到阿梅利亞):

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

當我這樣做,我收到以下錯誤信息:

Warning message: 
In if (class(dat.list) %in% "imputationList") { : 
    the condition has length > 1 and only the first element will be used 

這裏,如果我看一下原來的熱甲板結果的結構會發生什麼:

  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個版本的多重插補數據) - 有我喜歡的東西我們是否已經知道如何首先將長度縮短爲一組?

任何幫助表示讚賞。道歉重新格式化或者我忘記了任何東西 - 請讓我知道你還需要什麼。

感謝

+0

也許你想在布爾的'any'或'all' if語句 – Carl

+0

@Carl是有可能改變這種狀況? if語句來自程序包本身。正如我在鏈接文件中所描述的那樣,上述實際的R代碼正是我所做的。 – egon

回答

1

每@理查德的建議,我也寫信給miceadds的維護者和他儘快回來說,我不勝感激。

事實證明,這只是一個警告,而不是一個錯誤,而中頻對象真的被生產。對我來說,這是一個總的禁忌。 miceadds的作者確實注意到他可能會在未來的版本中更改/刪除警告。

1

這看起來像在miceadds的一部分包/功能作者的錯誤,而不是預期,一個對象可以有多個類(或只寫了%in%呼叫向後),而不是檢查預先在dat.list參數中給出的對象。無論哪種方式,%in%都不是檢查類的正確方法。 CRAN來源是datalist2mids.R。我將使用maintainer("miceadds")中的電子郵件地址提交錯誤報告。

+0

我已經寫了每您的建議維護者,當我得到迴應,或者沒有應答,將在數天痕將盡快紀念這個作爲回答。 – egon

相關問題