私はRにはかなり新しく、それに取り組んだ経験はありますが、あまり流暢ではありません。 私は最近、大きなデータセットのデータセットを扱い、R 3.3.1を同じデータセットに使用しました。 データフレーム(X)には、フラグ型の列と数値型の2つの列、つまり高さと重さがあります。何かのように複数の条件を1つのIFループに入れてR
値は次のとおりです。私は今、0
X$h_1 <- 0
X$w_1 <- 0
にH_1とW_1ように2つの新しい列を初期化している
h w hw_flag
5.874 60.5478 0
4.874 40.5478 0
3.874 10.5478 1
2.999 6.5478 1
8.874 90.5478 0
5.111 50.5478 1
6.554 65.5478 0
、私がしたいことはあるhw_flagが1であるときはいつでも、 h_1とw_1はそれぞれhとwからコピーされたエントリを取得し、h_1とw_1に値がコピーされると対応するhとwの値は0になるはずです。私は入れてみました
for(i in 1:nrow(X)){
if(X$hw_flag[i] == '1')
X$h_1[i] <- X$h[i];
}
for(i in 1:nrow(X)){
if(X$hw_flag[i] == '1')
X$w_1[i] <- X$w[i];
}
for(i in 1:nrow(X)){
if(X$hw_flag[i] == '1')
X$h[i] <- 0;
}
for(i in 1:nrow(X)){
if(X$hw_flag[i] == '1')
X$w[i] <- 0;
}
Output :
h w hw_flag h_1 w_1
5.874 60.5478 0 0 0
4.874 40.5478 0 0 0
0 0 1 3.874 10.5478
0 0 1 2.999 6.5478
8.874 90.5478 0 0 0
0 0 1 5.111 50.5478
6.554 65.5478 0 0 0
次のとおりであり、それは私が持っているしたい所望の出力を与えている
は今、私は私が働いているこれら4 steps.Theコードの4つのループを記述する必要があります1つのループではすべてが、しかし私が直面していた問題は、最初のステップが期待通りに実行され、2つ目のステップが正しく機能しないということです。私は置くことを試みた; Enterを使って改行しても、それでも問題は解決しませんでした。 私は従っていましたが試したし、H_1する時間値をコピーしたが、次のステップで、それはW_1へワットの値をコピーしていないコード:
for(i in 1:nrow(X)) {
if(X$hw_flag[i] == '1')
X$h_1[i] <- X$h[i];
X$w_1[i] <- X$w[i];
X$h[i] <- 0;
X$w[i] <- 0;
}
だから、私は基本的にどのように私ができることを知りたいです同じIF-Yesブロックに対して複数のthen文を入力します。
てみてください'for'ループのために行われました。 – rosscova
Rの中で ';'を使う必要はありません。 –
ありがとう@rosscova、私は何とかそれらのブレースを見逃しました。 – PD1