1

私のデータには多くの個人がいます (n=600)。PCA を実行し、変数と個体のバイプロットを作成したいと考えています。貢献度によって色分けされた変数が欲しいです。これらの個体は 2 つのグループに属しており、2 つのグループに応じてポイントに色を付けたいと思います。小さな例を添付します。

library(FactoMineR)
library(factoextra)
data(decathlon2)
decathlon2.active <- decathlon2[1:23, 1:10]
head(decathlon2.active[, 1:6])
res.pca <- PCA(decathlon2.active, graph = FALSE)
fviz_pca_biplot(res.pca, col.var="cos", geom = "point") + scale_color_gradient2(low="white", mid="blue", 
                    high="red", midpoint=0.5) + theme_minimal()

res.pca_ind = data.frame(res.pca$ind)
res.pca_ind

質問;

  1. 行名SEBRLEとNOOLを赤で、残りを黒で色付けするにはどうすればよいですか
  2. すべての行名を 2 つの要素のうちの 1 つに割り当て (これは例なのでどちらでもかまいません)、色を変えます。

部分的な回答;

sub = as.character(rownames(res.pca_ind))
decathlon3 = decathlon2[which(rownames(decathlon2) %in% sub),]

fviz_pca_biplot(res.pca, axes = c(1, 2), geom = c("point", "text"),
            label = "all", invisible = "none", labelsize = 2, pointsize = 2,
            habillage = decathlon3$Competition, addEllipses = FALSE,    ellipse.level = 0.95,
            col.ind = "black", col.ind.sup = "blue", alpha.ind = 1,
            col.var = "steelblue", alpha.var = 1, col.quanti.sup = "blue",
            col.circle = NULL, 
            select.var = list(name = NULL, cos2 = NULL, contrib= NULL), 
            select.ind = list(name = NULL, cos2 = NULL, contrib = NULL),
            jitter = list(what = "label", width = NULL, height = NULL))

しかし、私が得たところで、私は負けています。habilage と select.var の両方を contrib で使用する方法を見つけることができませんでしたError: Continuous value supplied to discrete scale

4

1 に答える 1