0

コマンドを使用してRで最適な行を作成しようとしていますloessが、問題は、データが1つのベクトルしかないのに、2つの部分で存在する必要があることです...

だから私は最初にこのコマンドを持っています:

x = 1:generaties
CI.up = as.numeric(gemiddelde)+as.numeric(ci)
CI.dn = as.numeric(gemiddelde)-as.numeric(ci)
plot(gemiddelde~x, cex=0.5,xaxt='n',ylim=c(0,1.1), xlab='Populatie(a = 100, size = 500, n = 15, tau = 10, c = 50, sigma = 0.5, phenoNumber = 5)',ylab='Fitness', main='Fitness over  generaties',col='blue',pch=16)
axis(1, at=x)
arrows(x,CI.dn,x,CI.up,code=3,length=0.05,angle=90,col='red')

グラフが表示されます

そして、追加しようとしました:

x1 = 1:(generaties/2)
x2 = (generaties/2):generaties
lo1 <- loess(gemiddelde[1:(generaties/2)]~x1)
lo2 <- loess(gemiddelde[(generaties/2):generaties]~x2)
lines(predict(lo1), col='red', lwd=2)
lines(predict(lo2), col='red', lwd=2)

しかし、その後、IR は、グラフの途中から 2 番目の行ではなく、両方の行を 0 から開始します。

これについて何ができますか?

4

1 に答える 1

0

あなたはほぼそこにいると思います-lines()コマンドにいくつかの x 値を指定する必要があるだけです。私が作成したデータがあなたのデータを十分に表していることを願っています:

#Make up some data
set.seed(0)
generaties <- 20
gemiddelde <- 0.5+0.2*sin(1:generaties)
ci <- runif(generaties)*0.3

#your plot
x = 1:generaties
CI.up = as.numeric(gemiddelde)+as.numeric(ci)
CI.dn = as.numeric(gemiddelde)-as.numeric(ci)
plot(gemiddelde~x, cex=0.5,xaxt='n',ylim=c(0,1.1), xlab='Populatie(a = 100, size = 500, n = 15, tau = 10, c = 50, sigma = 0.5, phenoNumber = 5)',ylab='Fitness', main='Fitness over  generaties',col='blue',pch=16)
axis(1, at=x)
arrows(x,CI.dn,x,CI.up,code=3,length=0.05,angle=90,col='red')

#Adding the loess smoother
x1 = 1:(generaties/2)
x2 = (generaties/2):generaties
lo1 <- loess(gemiddelde[1:(generaties/2)]~x1)
lo2 <- loess(gemiddelde[(generaties/2):generaties]~x2)
lines(x1,predict(lo1), col='red', lwd=2)  #specify x values
lines(x2,predict(lo2), col='red', lwd=2)  #specify x values
于 2014-05-15T12:29:09.577 に答える