如何计算R数据集中每列(所有列的值都是数字)的相同值计数小于40%的那列。

问题描述 投票:0回答:1

在R代码中,我想从一个数据集中选择所有的变量,其中每个列的相同值小于40%.我正在应用sapply,但没有得到正确的输出。注:所有列的值都是数字。

train = train[, sapply(train, function(col) length(unique(col))) < 0.4*nrow(train)]

请建议如何继续。

r count unique sapply
1个回答
1
投票

通过玩弄一个玩具数据集,我找到了这段代码,它的工作原理是这样的

train[, sapply(train, function(x) {(sort(table(x), decreasing = TRUE)/nrow(train))[[1]] < 0.4})]

基本上,我为每一列数字创建相对频率表(按递减顺序排序)。train,然后我检查每列的最频繁值出现的次数是否少于40%。如果是,则选择此列,否则丢弃。

© www.soinside.com 2019 - 2024. All rights reserved.