次のデータセットがあるとしましょう
set.seed(144)
dat <- matrix(rnorm(100), ncol=5)
次の関数は、可能なすべての列の組み合わせを作成し、最初の列を削除します
(combinations <- do.call(expand.grid, rep(list(c(F, T)), ncol(dat)))[-1,])
# Var1 Var2 Var3 Var4 Var5
# 2 TRUE FALSE FALSE FALSE FALSE
# 3 FALSE TRUE FALSE FALSE FALSE
# 4 TRUE TRUE FALSE FALSE FALSE
# ...
# 31 FALSE TRUE TRUE TRUE TRUE
# 32 TRUE TRUE TRUE TRUE TRUE
最後のステップは、列のサブセットごとに k-means クラスタリングを実行することです。これは、apply の単純なアプリケーションです (k-means モデルのそれぞれに 3 つのクラスターが必要です)。
models <- apply(combinations, 1, function(x) kmeans(dat[,x], 3))
私の質問は、列のサブセットごとに、kmeans の代わりに階層クラスタリングを実行する方法です。何か案が?