R 删除每个级别的观测值小于5的系数列
我有一个由100多列组成的数据集,所有列都是factor类型。例:R 删除每个级别的观测值小于5的系数列,r,dataframe,data-handling,R,Dataframe,Data Handling,我有一个由100多列组成的数据集,所有列都是factor类型。例: animal fruit vehicle color cat orange car blue dog apple bus
animal fruit vehicle color
cat orange car blue
dog apple bus green
dog apple car green
dog orange bus green
在我的数据集中,我需要删除所有包含因子的列,因为每个级别的观测值少于5个。在本例中,如果我要删除每个级别的观察量小于或等于
1
的所有列,如blue
或cat
,则算法将删除animal
和color
列。最优雅的方法是什么?我们可以使用过滤器和表格
Filter(function(x) !any(table(x) < 2), df1)
# fruit vehicle
#1 orange car
#2 apple bus
#3 apple car
#4 orange bus
过滤器(函数(x)!任意(表(x)<2),df1)
#水果车
#1辆橙色轿车
#2苹果巴士
#3苹果汽车
#4辆橙色巴士
数据
df1我们可以使用select\u if
fromdplyr
library(dplyr)
df1 %>% select_if(~all(table(.) > 1))
# fruit vehicle
#1 orange car
#2 apple bus
#3 apple car
#4 orange bus
在本例中,所有列均显示2个唯一值
library(dplyr)
df1 %>% select_if(~all(table(.) > 1))
# fruit vehicle
#1 orange car
#2 apple bus
#3 apple car
#4 orange bus