문제

**편집:**죄송합니다. 상황은 제가 보여드린 것보다 조금 더 복잡할 수 있습니다.그러나 두 스크립트 모두 작동하지만 첫 번째 스크립트는 포인트 중복으로 인해 대규모 데이터 세트의 경우 명확하지 않을 수 있습니다!정말 고마워요 사샤!

먼저 여러 변수의 쌍을 표시한 다음 동일한 데이터세트에서 선택한 데이터를 겹쳐보고 싶습니다.일반적으로 중첩은 다음을 사용하여 얻을 수 있습니다. par(new=T) 이와 같이:

h<-rnorm(nc)  # this variable was used for conditioning
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
pairs(m)
par(new=T)
pairs(m[h>0.7,],col="red")

그러나 par() 이러한 용도에는 설정이 작동하지 않습니다.

그렇다면 아마도 격자 라이브러리가 도움이 될 수 있습니다. splom(), 하지만 실제로 작동하는지, 어떻게 작동하는지 모르겠습니다.누군가 몇 가지 제안을 해줄 수 있습니까?

도움이 되었습니까?

해결책

나는 가정한다 paris 이어야 한다 pairs?그만큼 pairs 함수에는 add 논쟁 정도라면 플롯에 9개의 패널이 있으므로(간단히 points 마지막 패널에 플롯됩니다).하지만 다음을 사용하여 단일 플롯에서 원하는 것을 수행하는 것은 그리 어렵지 않습니다. col:

nc <- 100
set.seed(1)
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)

cols <- ifelse(x>0.7,"red","black")
pairs(m,col=cols)

enter image description here

편집하다:

당신이 할 수 있는 또 다른 일 pairs 실제로 각 패널에서 수행하려는 기능이 설정됩니다.기본적으로 이것은 points, 하지만 이를 확장하여 일부 조건을 포함할 수 있습니다.

nc <- 100

X<-rnorm(nc)
Y<-rnorm(nc)
Z<-rnorm(nc)
m<-cbind(X,Y,Z)

panelfun <- function(x,y,foo=X,...){
    points(x[foo<0.7],y[foo<0.7],col="black",...)
    points(x[foo>0.7],y[foo>0.7],col="red",...)
}

pairs(m,panel=panelfun)

이는 이전과 동일한 그림을 제공합니다(시드를 설정하지 않았기 때문에 다른 점이 있습니다).단순히 색상 벡터를 만드는 것이 더 쉬울 수 있지만 패널 기능을 원하는 만큼 크게 만들 수도 있습니다.

또한, ... 다른 인수가 전달되도록 허용 points 기능:

pairs(m,panel=panelfun,pch=16)

다른 팁

lattice::splom 잘 작동합니다.R 인덱싱은 0 기반이 아닌 1 기반이고 논리 벡터가 0과 1로 강제되기 때문에 색상 인덱싱을 1만큼 강화해야 합니다.

library(lttice)
nc=100; h<-rnorm(nc)  
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
splom(m, col=c("blue", "red")[1+(h>0.7)])

enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top