【发布时间】:2018-05-13 20:52:35
【问题描述】:
我刚刚开始使用 R,在构建嵌套 FOR 循环时得到了意想不到的结果。当我运行下面的示例时,我希望它产生一个 40,000 x 1 向量(即从 t1=50 开始,然后从 0 到 1 迭代 t2,然后 t1=51 并从 0 到 1 迭代 t2),但是我得到了一个200x1 矢量。
对于这个极其基本的问题,我深表歉意。我刚刚开始使用 R,但在搜索中找不到直截了当的解释。
t1=seq(50, 150, 0.5) # 200x1 vector
t2=seq(0, 1, 0.005) # 200x1 vector
for (i in t1){
for (j in t2){
t3=3*t1+t2
}
}
【问题讨论】:
-
我根本不知道 R,我希望结果是 200x1
-
可能你在追求类似
t3[(i- 1)*length(t1) + j ] <- 3 * t1[i] * t2[j]的东西? -
您的循环体根本不使用索引
i和j,因此虽然构建了一个40,000 个元素的向量元素,但不清楚您要做什么按元素是一个非常糟糕的主意。 -
您在每次迭代时都会覆盖
t3。您需要定义足够大的东西来容纳所有迭代。但是,您甚至没有进行迭代,因为您没有在任何地方使用i或j。你只是在计算3 * t1 + t2很多次。 -
顺便说一下——你的
t1和t2向量有201元素而不是200。
标签: r for-loop nested nested-loops