我有一个106 x 105的数据集和106行.... 73是a类型,33是b类型 这些列指的是105种不同的基因。
我使用以下命令在数据集上运行PCA:
pca1 = prcomp(data, scale. = TRUE)
plot(pca1$x, pch = 20)
但是我希望情节显示红色的点类型和b蓝色的类型,我真的不知道怎么做
我试过这样做:
groups <- c(rep(1,73),rep(2,33))
qplot(pca1$x,colour = groups)
但是这返回了错误消息
"Error: Aesthetics must either be length one or the same length as the data.
Problems:groups"
答案 0 :(得分:0)
您从基本图形切换到ggplot2
图形,没有进行必要的更改。 ggplot2
需要数据框作为输入。 pca1$x
是矩阵,而不是数据框。 ggplot2
将尝试猜测美学,但在这种情况下,它不知道您想要将PC1得分与PC2得分进行绘图(因为矩阵是否。样本x没有变量)。所以你需要沿着这些方向做一些事情(未经测试,因为你没有给我们数据):
df <- as.matrix(pca1$x)
df$groups <- c(rep(1,73),rep(2,33))
str(df) # so you can see the structure and names
qplot(x = name of 1st column, y = name of 2nd column, data = df, geom = "point", color = 'groups')
给我们一些样本数据,我们可以更具体。
<强>更新强>
如果您想使用基本图形,只需在原始图表调用中添加颜色名称向量:
plot(pca1$x, pch = 20, col = c(rep("red", 73), rep("blue", 33)))