R表示简单公式的循环解

R表示简单公式的循环解,r,for-loop,formula,R,For Loop,Formula,我一直在用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我会使用expand.grid(),它提供了I和x的所有组合。这里不需要循环 x <

我一直在用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我会使用
expand.grid()
,它提供了I和x的所有组合。这里不需要循环

x <- seq(-3,3,0.01)
i <- 1:4
df <- expand.grid(x, i)
df$y <- exp(-abs(df$Var1)^df$Var2)

require(ggplot2)
ggplot(df, aes(x = Var1, y = y, col = factor(Var2))) +
  geom_point()

x完全同意EDi的解决方案。为了说明您也可以解决原始代码中的bug,下面是一个解决方案:

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)
}
par(mfrow=c(3,2))

席不会想出解决办法。我在寻找公式本身的错误,但我不知道有必要创建一个矩阵。太多了@伊迪:漂亮的解决方案。又好又简单,非常喜欢。然而,我还没有接触到ggplot包,因为我刚刚开始学习R,还需要发展基本的编程技能。
> Warning messages:
1: In y[i] <- exp(-abs(x)^i) :
  number of items to replace is not a multiple of replacement length
x <- seq(-3,3,0.01)
i <- 1:4
df <- expand.grid(x, i)
df$y <- exp(-abs(df$Var1)^df$Var2)

require(ggplot2)
ggplot(df, aes(x = Var1, y = y, col = factor(Var2))) +
  geom_point()
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)
}