0

この質問に対して疑似データを生成していないことをお詫びしますが、私が直面している問題は、このサイトのほとんどの非初心者にとって基本的なものだと思います. az 変数の値ごとに x と y の散布図をプロットするループを作成しようとしています。

x=rnorm(n=50)
y=rnorm(n=50)
z<-rep(c(1,2,3,4,5),10)
dataset <-cbind(x,y,z)
Dataset<-as.data.frame(dataset)
attach(Dataset)
jpeg()
z <-Dataset$z[1:5]
for(i in 1:5) {
    y<-y[z==i]
    x <-x[z==i]
    ARMAXpath<-file.path("C:", "Desktop", paste("myplot_", z[i], ".jpg", sep="")) 
    jpeg(file = ARMAXpath)
    TheTitle = paste("Scatter Plots", z[i])
    plot.new()
    plot.window(xlim=c(0,1), ylim=c(5,10))
    plot(y,x)
    dev.off()
}
detach(Dataset)

何をしても同じplot.windowエラーが発生します。このコードを添付の有無にかかわらず実行しました。ありとなしで実行しましたplot.window。また、ループの内外に移動しました。

Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : no non-missing arguments to max; returning -Inf

私の質問は、データセット (つまり領域) の 3 番目の変数によって 2 つの時系列のプロットを生成し、出力をファイル フォルダーに書き込む方法です。

4

2 に答える 2

0

@DWinのコメントを使用した代替コード:

x=rnorm(n=50)
y=rnorm(n=50)
z<-rep(c(1,2,3,4,5),10)
Dataset<-data.frame(x=x,y=y,z=z)

my.plot <- function(x,y,z){
    ARMAXpath<-file.path("C:", "Desktop", paste0("myplot_", z, ".jpg"))
    jpeg(file = ARMAXpath)
    plot(y,x, xlim=c(0,1), ylim=c(5,10))
    dev.off()
}

by(Dataset, Dataset$z, function(d) my.plot(d$x,d$y,unique(d$z)))
于 2013-09-06T01:32:06.683 に答える