[英]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.