R 按组获取变量类型的列表
我知道如何通过以下方式获得变量类型列表:R 按组获取变量类型的列表,r,R,我知道如何通过以下方式获得变量类型列表: unlist(lapply(dat, class)) 但是,有没有一种方法可以只返回一个类的变量(例如factors)或者将完整列表按类分组?我希望能够快速识别所有数值变量、因子等。举个例子: mtcars$vs <- factor(mtcars$vs) mtcars$am <- factor(mtcars$am) mtcars$gear <- factor(mtcars$gear) mtcars$carb <- factor(
unlist(lapply(dat, class))
但是,有没有一种方法可以只返回一个类的变量(例如factors)或者将完整列表按类分组?我希望能够快速识别所有数值变量、因子等。举个例子:
mtcars$vs <- factor(mtcars$vs)
mtcars$am <- factor(mtcars$am)
mtcars$gear <- factor(mtcars$gear)
mtcars$carb <- factor(mtcars$carb)
unlist(lapply(mtcars, class))
mpg cyl disp hp drat wt qsec vs am gear carb
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "factor" "factor" "factor" "factor"
mtcars$vs您可以使用dplyr::select_if()
根据列的结构选择列
require(tidyverse)
钻石%>%
选择_如果(是系数)
#A tibble:53940 x 3
切割颜色清晰度
1理想E SI2
2高级E SI1
3良好的E VS1
4高级I VS2
5良好的J SI2
6非常好的J VVS2
很好,我是VVS1
8非常好的H SI1
9公允价值VS2
10非常好的H VS1
# ... 还有53930行
请展示一个具有预期输出的可复制小示例。x=unlist(lapply(mtcars,class));x[x==“系数”]
?所需的输出仍然不清楚。。。可能拆分(名称(x),x)
?顺便说一句,你可能想看看?sapply
。你可以使用is.factor
,is.numeric
等来识别哪些列是factor、numeric等。另外,不要使用unlist(lappy(…,
),而使用sapply
,sapply(数据,is.factor)
然后将那些为真的列子集。您可以对结果进行排序
require(tidyverse)
diamonds %>%
select_if(is.factor)
# A tibble: 53,940 x 3
cut color clarity
<ord> <ord> <ord>
1 Ideal E SI2
2 Premium E SI1
3 Good E VS1
4 Premium I VS2
5 Good J SI2
6 Very Good J VVS2
7 Very Good I VVS1
8 Very Good H SI1
9 Fair E VS2
10 Very Good H VS1
# ... with 53,930 more rows