r-试图使用循环在数据集中找到唯一的变量,并使用sapply应用某个函数



我正在尝试使用循环来查找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

最新更新