首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用R运行双循环

如何使用R运行双循环
EN

Stack Overflow用户
提问于 2020-01-08 20:14:02
回答 2查看 58关注 0票数 0

我有以下的MWE:

代码语言:javascript
复制
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的值,并为每个值创建单独的情节。下面的代码是我尝试使用的代码:

代码语言:javascript
复制
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)
}
}

这会产生以下错误消息:

代码语言:javascript
复制
Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ

我试图创建单独的x_g变量,因为我不知道如何从原始代码中“擦除”x的值。我想我是:

使用incorrectly

  • Taking循环的
  1. 使用单独的x_g变量

错误的方法

关于如何正确地处理这个问题,有什么建议吗?我不熟悉R中矩阵的使用,这是解决这类问题的必经之路吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-08 20:30:05

为了保持代码风格,我想嵌套的for循环可能如下所示

代码语言:javascript
复制
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)
}
票数 1
EN

Stack Overflow用户

发布于 2020-01-08 20:31:46

类似于@ThomasIsCoding,但它不创建变量x_g

代码语言:javascript
复制
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)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59653202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档