R表示简单公式的循环解
我一直在用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 <
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)
}