2

5000 を超える観測データフレームがあります。階層的クラスタリングを使用してデータを分析しようとすると、8 つのクラスターがあり、いくつかのクラスターには数百または 1000 の個々の観測値が含まれています。

# Cut tree into 8 groups
cutree_hclust <- cutree(hclust.unsupervised, k = 8)

# Number of members in each cluster
table(cutree_hclust)

次に、各クラスターのサイズを示します。

cutree_hclust
   1    2    3    4    5    6    7    8 
  867  61  14   310  1135  432   119  5

さまざまなクラスターの各観測値にどのような変数の組み合わせがあるかを把握するために、8 つのクラスターをデータフレームとして作成し、それらを個別に分析できるようにすることが考えられると考えました。これは、さまざまな列にどのような行があるのか​​ わからないため、データフレーム全体(Complete_df)のパターンがわからないためです。

ただし、これらの新しいデータフレームを作成するにはどうすればよいですか?

fx によって、さまざまなクラスターの行であると想定しているものを確認できます。

rownames(MY_df)[cutree_hclust == 7]

[1] "60"  "72"  "92"  "97"  "110" "210" "211" "267"
[9] "565"

しかし、私が入力した場合:

h_clust <- as.dataframe( rownames(MY_df)[cutree_hclust == 7])

このクラスターに含まれる行のビューのみを (リストとして) 取得し、他のすべての列は含まれません。

Complete_df というデータフレームでこれらの特定の行を選択するにはどうすればよいですか?

私は次のことを試しました:

rn <- rownames(MY_df)[cutree_hclust == 7]; subset(Complete_df, rn %in% rownames(MY_df))

- this from: R いくつかの行を選択して新しいデータフレームを作成する方法

Clust_7 <- rownames(MY_df)[cutree_hclust == 7]

Clust_7_df <- data.frame(matrix(unlist(Clust_7), nrow=9, byrow=T))

上記の試みはうまくいきませんでした。

私は自分でこれを理解することができなかったので、助けてくれる人からの返事を楽しみにしています:-)

4

2 に答える 2