1

使用 robCompositions 包,我需要按组估算缺失值。例如,使用 iris 数据集。

library(robCompositions)
library(dplyr)
data(iris)

# Insert random NAs
for (i in 1:4) {
  n_NA = sample(0:10, 1) 
  index_NA = sample(1:nrow(iris), n_NA)
  iris[index_NA, i] = NA
}

这是我不知道使用哪个manip的地方......

impfunc <- function(x) x %.% 
  regroup(list(...)) %.% 
  mutate(impKNNa(x[,-5], k=6, metric="Euclidean"))
impfunc(iris, "Species")

iris %.% group_by(Species) %.% mutate(impKNNa(iris[,-5], k=6, metric="Euclidean"))

任何想法?

谢谢。

4

1 回答 1

0

使用 do() 函数。它允许您将任意函数应用于分组数据框。

您还需要不仅提取 impKNNa 的输出,还需要特别提取 impKNNA$xImp 的输出,它是更改后的数据帧。

另一个问题是 impKNNA 不想要任何变量,除了感兴趣的数值变量,并且 do() 不会删除分类变量。因此,也许一个解决方案是为 impKNNA 编写一个包装函数,该函数将删除分类变量并返回 xIMP,并使用 do() 将其应用于分组数据帧。

于 2014-03-02T02:06:49.503 回答