R の mouseadds パッケージを使用して、SPSS で作成された多重代入データベースから結果をプールしようとしています (用語が少しずれている場合は申し訳ありませんが、R は初めてです)。as.mids2 コードを使用してデータベースを mids オブジェクトに変更しようとすると、次のエラー メッセージが表示されます。
Error in 1:(max(as.numeric(levels(data2[, .imp])))) :
result would be too long a vector
In addition: Warning messages:
1: In max(as.numeric(levels(data2[, .imp]))) :
no non-missing arguments to max; returning -Inf
2: In max(as.numeric(levels(data2[, .imp]))) :
no non-missing arguments to max; returning -Inf
誰でもこれが何を意味するのか分かりますか? データベースは 2378 個の obs を持つ 28 個の変数であり、それほど大きくありません。
これは私が使用しているスクリプトです:
mydata <- read.csv("mydata.csv", na.strings = "999")
as.mids2 <- function(data2, .imp=1, .id=2){
ini <- mice(data2[data2[, .imp] == 0, - c(.imp, .id)], m = max(as.numeric(levels(data2[, .imp]))), maxit=0)
names <- names(ini$imp)
if (!is.null(.id)){
rownames(ini$data) <- data2[data2[, .imp] == 0, .id]
}
for (i in 1:length(names)){
for(m in 1:(max(as.numeric(levels(data2[, .imp]))))){
if(!is.null(ini$imp[[i]])){
indic <- data2[, .imp] == m & is.na(data2[data2[, .imp]==0, names[i]])
ini$imp[[names[i]]][m] <- data2[indic, names[i]]
}
}
}
return(ini)
}
mydata.mids <- as.mids2(mydata)
どんな助けでも大歓迎です。