y和x长度不一样,散点图R

y and x not the same length, scatterplot R

下面举个简单的例子:

A <- c(1,1,1,2,2,3,3,4,4,4)
B <- c(1,0,0,1,0,1,0,1,0,0)
C <- c(6,3,2,4,1,2,6,8,4,3)

data <- data.frame(A,B,C)
data

我想创建一个如下所示的散点图: 没有蓝色和红色寄宿生,他们在那里作为解释性指南

所以我想绘制: 每次 B=1 时,我想将其 C 值用于水平刻度,并绘制 C 值,其中 B=0 沿垂直刻度。

例如;其中 X=6,我们在 x=3 and 2

处有点

其中 X=4,我们在 x=1

处有点

其中 X=2,我们在 x=6

处有一个点

其中 X=8,我们在 x=4 and 3

处有一个点

我必须 manipuulate/melt/reshape 我的数据吗?

使用 zoo 包中的 na.locf 无需重塑。

library(zoo)

#extract the part of C that we need for mapping x
data$D = ifelse(data$B==1,data$C,NA)

#fill in the blanks
data$D = na.locf(data$D)

#Extract from C what we need for y
data$E = ifelse(data$B==1,NA,data$C)

#Done!
plot(data$D,data$E)