처음에는 2 개의 벡터 (내 데이터의 부분 집합)로 시작합니다. 나는 둘 모두에서 ecdf를 실행하여 비교를 쉽게하기 위해 같은 줄거리에 그려 봅니다. 모든 것은 괜찮지 만 내가 알아야 할 것은 모든 벡터 쌍에 대해 보편적으로 함수를 작동시키는 방법입니다. 따라서 벡터에 입력하면 함수가 작동합니다. 큰 벡터를 두 번째 호출하는 경우처럼 데이터가 손실되지 않도록 호출 된 순서에 관계없이 플롯의 축이 큰 벡터에 대해 자동으로 확장되도록하고 싶습니다.R에서 비교할 두 개의 Ecd 파일을 플로팅 할 때 축을 큰 벡터로 축척하려면 어떻게해야합니까?
홍채 데이터를 사용할 수 있도록 설정을 포함 시켰습니다. 여기
data=iris
virg<-subset(iris, iris$Species=="virginica"); virg
virg_pl<-virg$Petal.Length; virg_pl
versi<-subset(iris, iris$Species=="versicolor"); versi
versi_pl<-versi$Petal.Length; versi_pl
내가 무엇을 가지고 :
twoecdfsoner<-function(x,y,z){
ecdf1<-ecdf(x)
ecdf2<-ecdf(y)
plot(ecdf1,xlab=head(z,n=1),
ylab="cumulative relative frequency",
lty=1,pch=".",
main="",
do.point=FALSE,
verticals=TRUE,xlim=c(min (y),max (x)))
plot(ecdf2,verticals=TRUE,
do.points=FALSE,
lty=3,pch=".",
add=TRUE, xlim=c(min (y),max (x)))
legend("right","center",
legend=c(deparse(substitute(x)),
deparse(substitute(y))),
lty=c(1,3),cex=0.8)
}
twoecdfsoner(virg_pl,versi_pl,"inches")
내가 조건문을 쓸 수있는 것 같아하지만 난이 오류를 얻을 :
Warning messages:
1: In x > y :
longer object length is not a multiple of shorter object length
2: In x > y :
longer object length is not a multiple of shorter object length
3: In x > y :
longer object length is not a multiple of shorter object length
지금까지 내가 시도를
xlim=c(min (y),max (x)))
xlim=range(c(x),c(y)
xlim=pmax(x,y)
및 쓰기 조건 ional statements
그 더 큰 벡터를 실선으로 작성하고 싶습니다. 누구든지 어떤 제안이라면 크게 감사 할 것입니다.
@ 42- 조금 읽은 후에 조건부 명령문을 작성할 수 있다고 생각했는데, 이것도 작동하는 것 같습니다. 이 방법으로 코드를 실행하는 것에 대한 비판이 있습니까?
twoecdfsoner<-function(x,y,z){
ecdf_1 <- plot(ecdf(x),
verticals=TRUE,
pch=".",
main="",
do.points=FALSE,
lty=ifelse(max(x)>max(y), c(1), c(3)),
xlab=head(z,n=1),
ylab="Cumulative relative frequency",
xlim=range(x,y))
ecdf_2 <- lines(ecdf(y),
verticals=TRUE,
do.points=FALSE,
lty=ifelse(max(y)>max(x), c(1), c(3)),
pch=".")
legend_text<-
if (max(x)>max(y)){
legend=c(deparse(substitute(x)), deparse(substitute(y)))
} else {max(y)>max(x)
legend=c(deparse(substitute(y)), deparse(substitute(x)))
}
legend("right",
legend=legend_text,
lty=c(1,3))
}
twoecdfsoner(virg_pl,versi_pl,"inches")
코드를 실행할 때 오류가 발생하지 않습니다. – G5W
@ G5W : 처음 2 개의 인수를 뒤집어보십시오. –
@ 42 알겠습니다. 오류는 없지만 그래프의 크기가 잘못 조정되었습니다. 알았다. – G5W