Играя с набором игрушечных данных, я нашел этот код, который работает
train[, sapply(train, function(x) {(sort(table(x), decreasing = TRUE)/nrow(train))[[1]] < 0.4})]
По сути, я создаю таблицу относительных частот (отсортированных в порядке убывания) для каждого столбца чисел c в train
, а затем проверяю, встречается ли наиболее частое значение для каждого столбца менее 40% случаев. Если да, этот столбец выбран, в противном случае отбрасывается.