データフレームのどの列がカテゴリ値なのか、summary で見るなどして予め確認しておくべきなのかもですが、ある程度の条件でそれらしい列を抽出しようという試みです。
- データは iris を使う
- カテゴリ値は、列ごとに 2 〜 5 種類存在すると想定
とした場合、以下のような形が使えるかもしれません。
library("dplyr")
which(
sapply(
colnames(iris),
function(c) {
iris[[c]] %>%
na.omit() %>%
unique() %>%
length() %>%
between(2, 5)
}
)
) %>%
names()
'Species'
データ量が少ないと誤認識しそうですが、参考になれば。
コメント