2

下面举个简单的例子:

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 值用于水平刻度,并沿垂直刻度绘制 B=0 的 C 值。

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

其中X=4,我们有点x=1

其中X=2,我们有一点x=6

其中X=8,我们有一个点在x=4 and 3

我必须以某种方式操纵/融化/重塑我的数据吗?

4

1 回答 1

0

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

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)
于 2015-03-30T18:19:36.060 回答