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


コメント