2016-06-10 224 views
2

我是一位尝试使用R的生物学家,我正在为此苦苦挣扎。R中的主成分分析,ggbiplot

我试图产生主成分分析此数据:

1,26.96,37.31,35.74 
1,24.27,38.48,37.24 
1,23.58,35.64,40.78 
1,24.29,35.72,39.99 
1,26.43,37.72,35.85 
1,28.80,46.96,24.24 
2,30.05,44.86,25.09 
2,26.59,47.24,26.17 
2,30.55,45.70,23.75 
2,25.95,48.77,25.28 
2,23.31,50.11,26.59 
2,31.29,43.88,24.82 
3,14.70,37.65,47.65 
3,17.11,36.14,46.75 
3,15.83,36.83,47.34 
3,13.77,38.39,47.84 
3,17.76,35.02,47.22 
3,12.90,38.29,48.81 

的第一列对应于所述组变量,我有3个基团。

我看到HERE,如何制作我想要的图表。但每次我到生成双标图兼职,我得到的消息:

Error: Continuous value supplied to discrete scale.

这里是我正在使用的代码:

>data(GPA2) 
>head(GPA2, 3) 
>log.ir <- log(GPA2[, 2:4]) 
>ir.group <- GPA2[, 1] 
>ir.pca <- prcomp(log.ir,center = TRUE,scale = TRUE) 
>print(ir.pca) 
>plot(ir.pca, type = "l") 
>summary(ir.pca) 
>predict(ir.pca, newdata=tail(log.ir, 2)) 
>g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, groups = ir.group, ellipse = TRUE, circle = TRUE) 
>g <- g + scale_color_discrete(name = '') 
>g <- g + theme(legend.direction = 'horizontal', legend.position = 'top') 
>print(g) 

谁能帮助我?

回答

1

你的分组变量需要不数字

library(ggbiplot) 
GPA2 <- data.frame(
    ir.group = sample(c(1,2,3),10, replace = TRUE), 
    x = sample(1:10), 
    y = sample(1:10), 
    z = sample(1:10) 
) 

data(GPA2) 
head(GPA2, 3) 
log.ir <- log(GPA2[, 2:4]) 
ir.group <- GPA2[, 1] 
ir.pca <- prcomp(log.ir,center = TRUE,scale = TRUE) 
print(ir.pca) 
plot(ir.pca, type = "l") 
summary(ir.pca) 
predict(ir.pca, newdata=tail(log.ir, 2)) 
g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, groups = as.factor(ir.group), ellipse = TRUE, circle = TRUE) 
g <- g + scale_color_discrete(name = '') 
g <- g + theme(legend.direction = 'horizontal', legend.position = 'top') 
print(g) 
0

在第一列中你的分组变量是一个整数(1,2,3),它必须是一个字符串,东西替换它的一个因素如“组1”,“组2”,“组3”(不含“”)。您的数据会看起来像这样:

group 1,26.96,37.31,35.74 
group 1,24.27,38.48,37.24 
group 1,23.58,35.64,40.78 
group 1,24.29,35.72,39.99 
group 1,26.43,37.72,35.85 
group 1,28.80,46.96,24.24 
group 1,30.05,44.86,25.09 
group 2,26.59,47.24,26.17 
group 2,30.55,45.70,23.75 
group 2,25.95,48.77,25.28 
group 2,23.31,50.11,26.59 
group 2,31.29,43.88,24.82 
group 3,14.70,37.65,47.65 
group 3,17.11,36.14,46.75 
group 3,15.83,36.83,47.34 
group 3,13.77,38.39,47.84 
group 3,17.76,35.02,47.22 
group 3,12.90,38.29,48.81