如何使用for循环制作向量

use*_*538 15 indexing loops r vector sequence

我对R(以及一般的编程)非常陌生,并且我已经坚持这个(可能非常简单)问题几天了......

如何3 6 12 24 48 96 192 384 768for循环制作矢量?

到目前为止,我设法提出的所有内容都是:

x=numeric()
for (i in 1:8) (x=2*i[-1])
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.我认为其中一个主要问题是我不明白如何索引序列中的数字.

如果有人能指出我正确的方向,那将是一个很大的帮助!

Jac*_*ley 17

好的,你需要知道的第一件事是如何将东西附加到矢量.你想要的功能很容易append:

x <- c(1, 2)
x <- append(x, 3)
Run Code Online (Sandbox Code Playgroud)

将使向量x包含(1, 2, 3)就像你已经完成一样x <- (1, 2, 3).接下来你需要意识到的是,目标向量的每个成员都是之前的两倍,这在for循环中很容易实现

n <- 1
for (i in 1:8)
{
    n <- n*2
}
Run Code Online (Sandbox Code Playgroud)

将每个循环加倍.显然,您可以通过在声明之前或之后放置其他语句,以其加倍或未加倍的形式使用它n <- n*2.

希望你可以将这两个东西放在一起,形成你想要的循环.

  • 我完全同意,卡尔,但是从他的帖子结构我认为这是一个旨在教授循环等的学习练习,而不是试图找出创建矢量的最佳方法. (3认同)

TMS*_*TMS 16

x=c()
x[1] = 3
for (i in 2:9) { 
    x[i]=2*x[i-1]
}
Run Code Online (Sandbox Code Playgroud)


Car*_*oft 5

真的,伙计们。坚持隐藏在 Arun 评论中的解决方案。

Rgames> 3*2^(0:20)
 [1]       3       6      12      24      48      96     192     384     768
[10]    1536    3072    6144   12288   24576   49152   98304  196608  393216
[19]  786432 1572864 3145728
Run Code Online (Sandbox Code Playgroud)

  • 虽然我完全同意这是创建相关向量的更好方法,但它并没有回答这个问题。其中,鉴于它的结构,我假设这是一个练习,旨在教授结构的使用,而不是指导如何创建一般的向量。 (5认同)