1

我对 R 非常陌生,并试图使用 ggbiplot 绘制我的数据的 PCA 图。因此,如果我的问题对您没有任何意义,请多多包涵。基本上,我按照我在这里找到的教程进行操作,除了我使用的是我自己的数据集。

一切都很好,直到我希望使用下面的代码来绘制一个图:

g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, 
                  groups = ir.ppm, ellipse = TRUE, 
                  circle = TRUE)

然后,我遇到了一个错误说明:名称错误(ell)[1:2] <- c(“xvar”,“yvar”):'names'属性[2]必须与向量[0]的长度相同

之后,我编辑了我的代码并使用了groups =的默认设置,我记得它应该是 = NULL。

g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, 
                  groups = ir.ppm, ellipse = TRUE, 
                  circle = TRUE) `

使用编辑后的代码,我确实能够绘制 PCA 图,但它无法根据我的需要将观察结果分类为不同的组。虽然我仍然不知道错误的含义: Error in names(ell)[1:2] <- c("xvar", "yvar") : 'names' attribute [2] must be the same length as the vector [0] ,我怀疑它可能与我的因子ir.ppm 有关

这是我遇到错误之前使用的所有代码。

ppm3 = read.csv("normalize_GasPhase_heatmap_no_ID_transpose.csv", header = TRUE, row.names = 1)
ppm3_1 <- ppm3[,1:30]
ir.ppm <- ppm3[,31]
ir.pca <- prcomp(ppm3_1, center = TRUE, scale. = TRUE)
library(ggbiplot)
g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, groups = ir.ppm, ellipse = TRUE, circle = TRUE)

总的来说,我的原始数据 ppm3 中有 6 个观察值和 31 个变量。

我一直在浏览一些与在 stackoverflow 中使用 ggbiplot 绘制 PCA 图相关的问题,但似乎没有多少人遇到与我相同的问题。如果有人可以为我提供帮助,我将不胜感激。谢谢你。

4

1 回答 1

2

You only have one observation for each of your factors in ir.ppm. You need more observations for each of the factors in order to display ellipses.

One work around is to remove the ellipses option like this:

g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, 
                  groups = ir.ppm,
                  circle = TRUE)
于 2016-05-19T13:41:51.770 回答