尝试使用循环在数据集中查找唯一变量并使用 sapply 应用某个函数

Trying to use loop to find unique variables in a dataset and use sapply to apply a certain function

我正在尝试使用循环在 NHANES 数据集中查找唯一变量,并使用 sapply 将函数 nhanes_uniq 应用于 NHANES 库。我不断收到错误消息,这是代码:

library(NHANES)
nhanes_uniq <- vector("integer", ncol(NHANES))
names(nhanes_uniq) <- names(NHANES)
for (i in names(NHANES)) {
  nhanes_uniq[i] <- n_distinct(NHANES[[i]])
}
sapply(NHANES[,ind], nhanes_uniq)

这里是错误:

Error in get(as.character(FUN), mode = "function", envir = envir) : object 'nhanes_uniq' of mode 'function' was not found

这可能会解决您的问题

names(NHANES)[sapply(NHANES, is.factor)]

sapply(NHANES, is.factor) 获取作为因子的列的逻辑向量。将其用作子集以获取因子变量的名称。

这里有一个选项dplyr

library(dplyr)
NHANES %>%
    select(where(is.factor)) %>%
    names