20

私はR(およびプログラミング全般)に非常に慣れていないため、この(おそらく非常に簡単な)質問に数日間行き詰まっています...

ループを使用してベクトル3 6 12 24 48 96 192 384 768を作成するにはどうすればよいですか?for

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

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

しかし、それはうまくいきません。主な問題の 1 つは、シーケンス内の数値にインデックスを付ける方法を理解していないことだと思います。

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

4

5 に答える 5

20

わかりました、最初に知っておく必要があるのは、ベクトルに物を追加する方法です。簡単に必要な機能は次の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 倍になります。明らかに、ステートメントの前または後に他のステートメントを配置することにより、2 倍の形式またはまだ 2 倍にならない形式で使用できますn <- n*2

うまくいけば、これら 2 つを組み合わせて、必要なループを作成できます。

于 2013-01-18T13:39:41.707 に答える
20
x=c()
x[1] = 3
for (i in 2:9) { 
    x[i]=2*x[i-1]
}
于 2013-01-18T14:29:50.873 に答える
5

本当に、皆さん。アルンのコメントに隠れている解決策に固執してください。

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
于 2013-01-18T15:41:37.867 に答える