2017-04-26 13 views
0

私はRが新しく、forループを使用してy = m * i + bを計算するRコードがあります。開始値は負で、私は計算でそれを使用して、Trend.Lineの最初の出現時に格納したいと思います。ループの問題で、Rの値が負の値である場合

私が期待している結果が得られません。数字が何であっても、私のスタートが正の数であれば、最初のオカレンスでそれを保存したいと思っています。例えば

start= -5場合、IはTrend.Line[2]へのI Trend.Line[1]にBを+ Y < = M *を-4計算された値は、この計算値を保存したいと思います。今start = 6あれば、私はこれに探してTrend.Line[2]

おかげに、Trend.Line[1]7計算した値を計算した値を保存したいと思います。

Trend.Line <- numeric(0) 

    start <- -5 
    end <- 12 

    m <- 345.72 
    b <- 54454 

    for(i in start:end){ 
    y <- m*(i) + b 
    Trend.Line[i] <- y 
    } 

    Trend.Line 
+0

'[] 'に負の値が省略されます。この特定の例を '-5:12'で再現するか、' Trend.Line <-5:12'でそれを割り当てることができます。 – lmo

+0

Rコードを編集して申し訳ありません。これを見ていただきありがとうございます。 – aotearoa

+0

こんにちはd.bありがとうございました。私はあなたのコードを実行したときに結果が得られませんでした。 Trend.Lineの最初の発生は、私が-5で始まり、あなたのものが54799.72であれば52725.4、正の数であれば1となるはずです。y = 345.72 * -5 + 54454 52775.4を与えてください。 seq_alongが負の値を無視するのだろうかと思います。 – aotearoa

答えて

1

方法だけ

Trend.Line <- start:end 
m * Trend.Line + b 

それはあなたが望むインデックスですべてのものを持つ数値ベクトルを返すことについて:

は、ここに私のコードです。また、Rの関数のベクトル化を利用しています。したがって、ベクトルのTrend.Lineのすべての要素に対して乗算と加算が機能します。

+0

Rコードを更新して申し訳ありません。解決策については、コードを参照してください。これを見ていただきありがとうございます – aotearoa

+0

こんにちはMacHeath。これを調べていただきありがとうございます。これは私が期待している結果です。 – aotearoa

関連する問題