此散点图中的每个点都是数据框中的一列。我想得到我画的线左边的列列表。我现在还不知道从哪里开始。
为了澄清我的问题,我想在该行的左侧或右侧获得列表或列数组。我不需要帮助画线。
这是我如何制作情节的。
pcaPlot = qplot(x=prin_comp$rotation[,1], y=prin_comp$rotation[,2]) +
geom_text(aes(label=row.names(prin_comp$rotation))) +
ggtitle(my_title)
答案 0 :(得分:1)
你可以尝试基础R方法
# run a Principal Components Analysis
pca <- prcomp(USArrests)
# plot the first two components
plot(pca$x[,1], pca$x[,2])
# plot a straight line to a pPlot with slope == 0.5
h <- abline(a = 0, b=0.5, lwd=2)
# hot wo calculate y=b*x
# use x*0.5 = y to find out if point lies left or right of the line
pca$x[,1]*0.5 < pca$x[,2]
# check with coloring
points(pca$x[,1], pca$x[,2], col=ifelse(pca$x[,1]*0.5 < pca$x[,2], 3, 2), pch=16)
或使用ggplot
library(tidyverse)
b <- 0.5
prcomp(USArrests) %>%
.$x %>% data.frame() %>%
mutate(gr=PC1*b<PC2) %>%
ggplot(aes(PC1, PC2)) +
geom_abline(slope = b, intercept = 0) +
geom_point(aes(color=gr))
答案 1 :(得分:1)
通过眼睛看,你的行看起来好像y = -10x + 0.2875
,所以你只需要测试
(10*prin_comp$rotation[,1] + prin_comp$rotation[,2] - 0.2875) > 0
如果这是TRUE
,那么它就是该行右侧的一个点,如果是FALSE
,那么它就在左侧。