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 に答える