簡體   English   中英

基於要素水平的估算

[英]Imputation based on factor level

我正在嘗試在以下數據幀上使用MICE進行插補。

marketValue <- c(NA, 234234, NA, 243243, NA, NA, 234523, NA, 232427, 112214)
bathrooms <- c(3,3,2,3,5,4,1,5,6,3)
garageSqFt <- c(400, 385, 454, 534, 210, NA, 342, 423, 535, NA)
totalSqFT <- c(NA, NA, 1231, 2232, 4564, 2122, 4324, 4342, 1299, 4355)
units <- c(1, 1, 1, 1, 1, 1, 1.5, NA, 2, 5)
subDivId <- c("112", "111", "111", "111", "112", "111", "112", "112", "111", 
"112")
data <- data.frame(marketValue, bathrooms, garageSqFt, totalSqFT, units, 
subDivId)

在實際的數據幀中,大約有1300個subDivId因子級別,我想創建新的數據幀(每個數據幀的行都具有相同的subDivId),然后在每個數據幀中進行插補。 我的嘗試

splitSubDiv <- split(data, data$subDivId) 
for (neighborhood in splitSubDiv){
    testData <- mice(neighborhood, m=5, maxit = 5) 
    impData <- complete(testData, 5) 
    str(impData) }

這似乎不起作用。 沒有進行插補,一切仍然沒有結果。 我究竟做錯了什么?

在嘗試中,沒有將估算的數據幀分配給對象,因此不會保留結果。

您可以使用lapply而不是for循環來嘗試這種方法。 您最終將獲得一列估算數據幀。

splitSubDivImp <- lapply(splitSubDiv, function(neighborhood) {
  testData <- mice(neighborhood, m = 5, maxit = 5) 
  impData <- complete(testData, 5)
})

splitSubDivImp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM