R编程:从数据框中查找所有因子

Moh*_*lah 7 r

我试图获取数据框的列的类类型.我在做的是:

sapply(mydata,class)
Run Code Online (Sandbox Code Playgroud)

但现在,我想只找到那些因素的列名.我尝试了以下方法:

sapply(data,is.factor)
Run Code Online (Sandbox Code Playgroud)

但它给了我:

ResponseFlag            Gender           Marital        OccupInput
 False                   True             True            False
Run Code Online (Sandbox Code Playgroud)

如何分离作为因子的列名?

任何帮助或想法将不胜感激.

G. *_*eck 14

试试这个:

Filter(is.factor, mydata)
Run Code Online (Sandbox Code Playgroud)

仅限名称如果您只想要名称:

names(Filter(is.factor, mydata))
Run Code Online (Sandbox Code Playgroud)

要么

names(iris)[ sapply(iris, is.factor) ]
Run Code Online (Sandbox Code Playgroud)

dplyr这些可以使用dplyr表示,如下所示:

library(dplyr)

mydata %>% Filter(f = is.factor)

mydata %>% Filter(f = is.factor) %>% names

mydata %>% summarise_each(funs(is.factor)) %>% unlist %>% .[.] %>% names
Run Code Online (Sandbox Code Playgroud)