# Calculate the maximum frequency for a single value for each column
aux <- apply(df,2,function(x) max(prop.table(table(x, useNA = "ifany"))))
# Define new.df as df whithout the columns that have a value more than a 90% of times
new.df <- df[,-which(aux>.9)]
2条答案
按热度按时间vs3odd8k1#
我将简单地使用
table
来计算每个值出现的次数,当这些值的最大值超过所需的阈值时,您可以丢弃该列。在下面的玩具例子中,
x
,y
和z
是“常量”。对于x
,有96%的NA
值,对于y
,有99%的0
,对于z
,有97%的-1
(但任何值都可以)。bxgwgixi2#
我们可以创建一个玩具示例,定义下面的
data.frame
,名为df
然后计算每列单个值的最大频率,最后删除超出所需值的值