web-dev-qa-db-ja.com

forループを使用してベクターを作成する方法

私はR(およびプログラミング全般)に非常に不慣れであり、この(おそらく非常に簡単な)質問に数日間こだわっています...

ベクトル3 6 12 24 48 96 192 384 768forループで?

私がこれまでに思いついたのは、次のようなものです。

x=numeric()
for (i in 1:8) (x=2*i[-1])

ただし、それは機能しません。主な問題の1つは、シーケンス内の番号のインデックス付け方法が理解できないことだと思います。

誰かが私を正しい方向に向けることができれば、それは非常に大きな助けになるでしょう!

15
user1990538

さて、最初に知っておくべきことは、ベクターに物事を追加する方法です。簡単に必要な関数はappendです:

x <- c(1, 2)
x <- append(x, 3)

x <- (1, 2, 3)を実行した場合と同様に、ベクトルxに(1, 2, 3)が含まれます。次に実現する必要があるのは、ターゲットベクトルの各メンバーが前のものの2倍であることです。これはforループで簡単に実行できます。

n <- 1
for (i in 1:8)
{
    n <- n*2
}

nは各ループを2倍にします。明らかに、あなたは他のステートメントをn <- n*2ステートメントの前または後に置くことにより、その2倍形式、またはまだ2倍形式でない形式で使用できます。

希望するループを作成するために、これら2つのことを組み合わせることを願っています。

17
Jack Aidley
x=c()
x[1] = 3
for (i in 2:9) { 
    x[i]=2*x[i-1]
}
16
TMS

本当に、人々。アルンのコメントに隠れているソリューションに固執します。

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
3
Carl Witthoft