0

この式を R 式で書くことに行き詰まっており、本当に助けが必要です。問題は、次のようなシリーズを生成したいということです:

x<-seq(-3,3,0.01)
y0<-exp(-abs(x)^0)
y1<-exp(-abs(x)^1)
y2<-exp(-abs(x)^2)
y3<-exp(-abs(x)^3)
y4<-exp(-abs(x)^4)
plot(y[1]~x)
plot(y[2]~x)
etc.

ここで、次のようなループを書きたいと思います。

x<-seq(-3,3,0.01)
y[i]<-exp(-abs(x)^i)
plot(y[i]~x)

私が書いたコードは次のとおりです。

par(mfrow=c(3,4))
x<-seq(-3,3,0.01)
for(i in 0:5){
  y[i]<-exp(-abs(x)^i)
}
plot(y[i]~x)

Rから受け取るエラーメッセージは次のとおりです。

> Warning messages:
1: In y[i] <- exp(-abs(x)^i) :
  number of items to replace is not a multiple of replacement length

あなたの助けは非常に高く評価されています。それは本当に私を悩ませていますが、私が見逃しているものはわかりません。

4

2 に答える 2

0

EDiのソリューションに完全に同意します。元のコードのバグも解決できることを示すために、これらの行に沿った解決策を次に示します。

par(mfrow=c(3,2))
x<-seq(-3,3,0.01)
# you have to initialize y and it has to be two-dimensional 
y <- matrix(nrow=6, ncol=length(x))
for(i in 0:5){
  # again, y has 2 dimensions and 
  # a matrix only has positive indexes 
  y[i+1,]<-exp(-abs(x)^i)
  # you want to plot from within the loop
  plot(y[i+1,]~x)
}
于 2013-07-25T08:14:07.870 に答える