R 找出因子变量中的所有层次

R 找出因子变量中的所有层次,r,tidyverse,purrr,R,Tidyverse,Purrr,使用UCI机器学习库()中著名的“成人”数据集 数据集如下所示: Observations: 32,561 Variables: 15 $ AGE <int> 39, 50, 38, 53, 28, 37, 49, 52, 31, 42, 37, 30, 23, 32, 40, 34, 25, 32, 38, 43, 40, 54, 35, 43, 59, ... $ WORKCLASS <chr> "State-gov&qu

使用UCI机器学习库()中著名的“成人”数据集

数据集如下所示:

    Observations: 32,561
Variables: 15
$ AGE           <int> 39, 50, 38, 53, 28, 37, 49, 52, 31, 42, 37, 30, 23, 32, 40, 34, 25, 32, 38, 43, 40, 54, 35, 43, 59, ...
$ WORKCLASS     <chr> "State-gov", "Self-emp-not-inc", "Private", "Private", "Private", "Private", "Private", "Self-emp-no...
$ FNLWGT        <int> 77516, 83311, 215646, 234721, 338409, 284582, 160187, 209642, 45781, 159449, 280464, 141297, 122272,...
$ EDUCATION     <chr> "Bachelors", "Bachelors", "HS-grad", "11th", "Bachelors", "Masters", "9th", "HS-grad", "Masters", "B...
$ EDUCATIONNUM  <int> 13, 13, 9, 7, 13, 14, 5, 9, 14, 13, 10, 13, 13, 12, 11, 4, 9, 9, 7, 14, 16, 9, 5, 7, 9, 13, 9, 10, 9...
$ MARITALSTATUS <chr> "Never-married", "Married-civ-spouse", "Divorced", "Married-civ-spouse", "Married-civ-spouse", "Marr...
$ OCCUPATION    <chr> "Adm-clerical", "Exec-managerial", "Handlers-cleaners", "Handlers-cleaners", "Prof-specialty", "Exec...
$ RELATIONSHIP  <chr> "Not-in-family", "Husband", "Not-in-family", "Husband", "Wife", "Wife", "Not-in-family", "Husband", ...
$ RACE          <chr> "White", "White", "White", "Black", "Black", "White", "Black", "White", "White", "White", "Black", "...
$ SEX           <chr> "Male", "Male", "Male", "Male", "Female", "Female", "Female", "Male", "Female", "Male", "Male", "Mal...
$ CAPITALGAIN   <int> 2174, 0, 0, 0, 0, 0, 0, 0, 14084, 5178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
$ CAPITALLOSS   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2042, 0, 0, 0, 0, 0, 0, 0, 0, 1...
$ HOURSPERWEEK  <int> 40, 13, 40, 40, 40, 40, 16, 45, 50, 40, 80, 40, 30, 50, 40, 45, 35, 40, 50, 45, 60, 20, 40, 40, 40, ...
$ NATIVECOUNTRY <chr> "United-States", "United-States", "United-States", "United-States", "Cuba", "United-States", "Jamaic...
$ ABOVE50K      <int> 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0...
对于每个因子变量,依此类推。当然,对于purrr包,应该有一种更简单的方法来实现这一点。比如:

df %>% map_if(is.factor, levels)
不幸的是,这会选择所有内容,甚至是integer类的列

如何使地图工作只考虑因素变量并返回它们的水平? 谢谢

希望这会有所帮助==

 library(df)
 df %>% select_if(is.factor) %>% 
 sapply(levels)

作为一个更新:我发现这是可行的:df%>%select_if(is.factor)%>%map_if(is.factor,levels)。不,我不明白为什么会这样,但这些df2%>%select_if(is.factor)%>%map(is.factor,levels)或df%>%map_if(is.factor,levels)谢谢。它的输出比df%>%map_if(is.factor,levels)更好,但它仍然返回每个变量的级别,而不仅仅是factor类型的变量。这会更好:df%>%select_if(is.factor)%>%sapply(levels)
df %>% map_if(is.factor, levels)
 library(df)
 df %>% select_if(is.factor) %>% 
 sapply(levels)