Я хотел бы иметь свой собственный скрипт, который отображает нагрузки и оценки PCA. Основная проблема заключается в том, что нагрузки и оценки не являются одними и теми же единица измерения (по моим данным). Я предполагаю, что мне нужно будет как-то масштабировать нагрузку в моем коде. Здесь я попытался есть пример biplot РСА на данных радужной оболочки, но этот код выдает ошибку:Самозаписываемый код для биплота в ggplot2
Error: Don't know how to add o to a plot
# mybiplot
# load data in
data <- (iris)
iris <- data[,1:4]
species <- data[,5]
# apply pca
pca <- prcomp(iris, center = TRUE,scale. = TRUE)
# extract scores and loadings
scores <- as.data.frame(pca$x)
loadings <- as.data.frame(pca$rotation)
label <- species
# make biplot
p = ggplot()+
geom_point(data = scores, aes(x=PC1, y=PC2, colour = factor(label)))+
geom_segment(data = loadings, aes(x=0,y=0,xend=PC1,yend=PC2),
arrow=arrow(length=unit(0.1,"cm")), color = "#DCDCDC")+
geom_text(data = loadings, aes(x=PC2, y=PC3, label=label),color="#006400")
p
Я хотел бы избавиться от этой ошибки (и понять, почему это произошло и что не так с кодом), а также как я могу получить оценки и нагрузки в одном биплоте. biplot (PCA), очевидно, работает, но мне нужно иметь самозанятый код, который является более гибким. ggbiplot() и autoplot() вообще не работали.
duplicate: http: //stackoverflow.com/questions/6578355/plotting-pca-biplot-with-ggplot2 – DMR
@DMR Я не думаю, что это дубликат вопроса, который вы цитируете. Да, они оба связаны с биплоадами, но этот вопрос заключается не в том, как вы пишете сюжет с нуля, а в том, что не так с этим кодом. – G5W
Самый проголосовавший ответ от этого сообщения на самом деле не работает. Это с 2011 года. Ошибка: geom_hline требует следующую недостающую эстетику: yintercept – marianess