データフレーム内の変数に適用する関数を作成しようとしていますが、現在の観測から2日先のウィンドウで、その日付ウィンドウにVarDの値を変更します常に値1.日付を使用してデータフレームサブセットを含むIfelseステートメント
を取るデータフレームは、次のようになります。
VarA VarB Date Diff VarD
1 1 2007-04-09 NA 0
1 1 2007-04-10 0 0
1 1 2007-04-11 -2 1
1 1 2007-04-12 0 1
1 1 2007-04-13 2 0
1 1 2007-04-14 0 0
1 1 2007-04-15 -2 1
1 1 2007-04-16 1 0
1 1 2007-04-17 -4 1
1 1 2007-04-18 0 1
1 1 2007-04-19 0 1
1 1 2007-04-20 0 1
新しいデータフレームは、次のようになります。
VarA VarB Date Diff VarD VarC
1 1 2007-04-09 NA 0 0
1 1 2007-04-10 0 0 0
1 1 2007-04-11 -2 1 1
1 1 2007-04-12 0 1 1
1 1 2007-04-13 2 0 0
1 1 2007-04-14 0 0 0
1 1 2007-04-15 -2 1 1
1 1 2007-04-16 1 0 0
1 1 2007-04-17 -4 1 0
1 1 2007-04-18 0 1 0
1 1 2007-04-19 0 1 0
1 1 2007-04-20 0 1 0
私はトンを試してみました彼は次のコード:
db$VarC <- 0
for (i in unique(db$VarA)) {
for (j in unique(db$VarB)) {
for (n in 1 : lenght(db$Date)) {
if (db$VarD[n] == 0) {db$VarC[n] <- 0}
else { db$VarC[n] <- ifelse(0 %in% db[(db$Date >=n & db$Date < n+3,]$VarC, 1,0}
}
}
しかし、私はVarCでわずか0を取得します。私はelseを使わないでコードをチェックしてうまくいきます。完全なコードが実行されている場合、rによってエラーはありません。私は問題がどこにあるかも知りません。
おかげG.。私はまた、異なるVarAで試して、日付がない場合は、また働いた。最後の1つの質問:VarC関数のx [-1]はどういう意味ですか?再度、感謝します。 –
'x [-1]'はその最初の要素を除いて 'x'です。 'x < - c(11、24、100);を試してください。 x [-1] ' –