ckl*_*uss 20 r dataframe r-factor
与str(data)我得到的head水平(1-2值)
fac1: Factor w/ 2 levels ... :
fac2: Factor w/ 5 levels ... :
fac3: Factor w/ 20 levels ... :
val: num ...
Run Code Online (Sandbox Code Playgroud)
与dplyr::glimpse(data)我得到因子水平的数/值更多的价值,但没有相关信息.是否有自动方法获取data.frame中所有因子变量的所有级别信息?一个包含更多信息的简短表格
levels(data$fac1)
levels(data$fac2)
levels(data$fac3)
Run Code Online (Sandbox Code Playgroud)
或者更准确地说是一个优雅的版本
for (n in names(data))
if (is.factor(data[[n]])) {
print(n)
print(levels(data[[n]]))
}
Run Code Online (Sandbox Code Playgroud)
克里斯托夫
akr*_*run 22
这里有一些选择.我们遍历"数据" sapply并获取levels每列(假设所有列都是factor类)
sapply(data, levels)
Run Code Online (Sandbox Code Playgroud)
或者如果我们需要pipe(%>%)它,可以这样做
library(dplyr)
data %>%
sapply(levels)
Run Code Online (Sandbox Code Playgroud)
或者另一种选择是summarise_each从dplyr我们指定levels的位置funs.
data %>%
summarise_each(funs(list(levels(.))))
Run Code Online (Sandbox Code Playgroud)
或者使用 purrr:
data %>% purrr::map(levels)
Run Code Online (Sandbox Code Playgroud)
或者首先分解所有内容:
data %>% dplyr::mutate_all(as.factor) %>% purrr::map(levels)
Run Code Online (Sandbox Code Playgroud)
并回答有关如何获得长度的问题:
data %>% map(levels) %>% map(length)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60156 次 |
| 最近记录: |