我有以下的MWE:
library(ggplot2)
N <- 199
K <- N+1
x <- rep(0,N)
x[1] <- 0.5
time <- c(1:K)
G <- c(2.7, 2.9, 3.0, 3.5, 3.82, 3.83, 3.84, 3.85)
g <- 2.7
for (t in 1:N) {
x[t+1] = g*x[t]*(1-x[t])
}
plot(time,x)在这段代码中,G是未使用的,是g的值向量。目前,我为g=2.7的第一个值绘制了一个图。我想做的是循环遍历G的值,并为每个值创建单独的情节。下面的代码是我尝试使用的代码:
for (g in G) {
x_g <- N+1
x_g[1] <- 0.5
for (t in 1:N) {
x_g[t+1] = g*x_g[t]*(1-x_g[t])
plot(time,x_g)
}
}这会产生以下错误消息:
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ我试图创建单独的x_g变量,因为我不知道如何从原始代码中“擦除”x的值。我想我是:
使用incorrectly
x_g变量错误的方法
关于如何正确地处理这个问题,有什么建议吗?我不熟悉R中矩阵的使用,这是解决这类问题的必经之路吗?
发布于 2020-01-08 20:30:05
为了保持代码风格,我想嵌套的for循环可能如下所示
for (g in G) {
x_g <- rep(0,N+1)
x_g[1] <- 0.5
for (t in 1:N) {
x_g[t+1] = g*x_g[t]*(1-x_g[t])
}
plot(time,x_g)
}发布于 2020-01-08 20:31:46
类似于@ThomasIsCoding,但它不创建变量x_g
library(ggplot2)
N <- 199
K <- N+1
x <- rep(0,N)
x[1] <- 0.5
time <- c(1:K)
G <- c(2.7, 2.9, 3.0, 3.5, 3.82, 3.83, 3.84, 3.85)
g <- 2.7
for (g in G) {
for (t in 1:N) {
x[t+1] = g*x[t]*(1-x[t])
}
plot(time,x, main = g)
}https://stackoverflow.com/questions/59653202
复制相似问题