R은 Pareto-optimal 인 입력 데이터 세트의 점만 인쇄 (또는 강조 표시) 할 수 있는지 궁금합니다.R을 사용하여 데이터 세트의 파레토 솔루션을 인쇄하십시오.
예를 들어, 아래의 2D 플롯에서 50 점 세트를 관찰 할 수 있습니다. 파레토 최적 점을 다른 색상으로 인쇄하고 싶습니다. 이 예에서는 두 개의 두 차원을 최소화한다고 가정합니다.
http://i42.tinypic.com/jso7ma.png
모든 팁은?
편집 :
주석에 의하면, I는 다음과 같은 코드로 원하는 결과를 달성 :
n <- 40
d <- data.frame(
x = rnorm(n),
y = rnorm(n)
)
# We want the "extreme" points in the following plot
par(mar=c(1,1,1,1))
plot(d, axes=FALSE, xlab="", ylab="")
for(i in 1:n) {
polygon(c(-10,d$x[i],d$x[i],-10), c(-10,-10,d$y[i],d$y[i]),
col=rgb(.9,.9,.9,.2))
}
d <- d[ order(d$x, decreasing=FALSE), ]
result <- d[1,]
for(i in seq_len(nrow(d))[-1]) {
if(d$y[i] < result$y[nrow(result)]) {
result <- rbind(result, d[i,]) # inefficient
}
}
points(result, cex=2, pch=15)
관련 질문 : 많은 답변을 ^^ ;;;;;;;;;;;;;;;;;;;nstackoverflow.com/questions/9106401/implementation-of-skyline-query-or-efficient-frontier –
감사합니다. 3D로 할 수있는 아이디어가 있습니까? 위의 방법은 한 차원 고정으로 2D에 편리합니다. – Dio
그 점에서'sqldf' 기반 솔루션은 적응하기 쉬워야합니다. 데이터 집합이 작 으면 성능 (큐빅 ...)이 문제가되지 않아야합니다. –