ループは機能しますが、関数内で使用しようとすると機能しません。 以下ループの前と後のデータフレームを示す余分な列を追加するためのループは機能内では機能しませんが、
DF
MSU
1 12
2 11
3 6
4 5
5 6
6 6
ループ
for (i in 1:nrow(DF))
{
if(i<4) { DF[ i, 2 ] <- 0} else
{
DF[ i, 2 ] <- ((DF[1,1] + DF[i-1,1] + DF[i-2,1] + DF[i-3,1])/4)
}
}
ループ後DF、余分な列は、最後の4つの値の平均値と追加されています値の数が4未満の場合を除きます。ループ付き関数の後にループ
myfct <- function(DF){
for (i in 1:nrow(DF))
{
if(i<4) { DF[ i, 3 ] <- 0} else
{
DF[ i, 3 ] <- ((DF[i,1] + DF[i-1,1] + DF[i-2,1] + DF[i-3,1])/4)
}
}
}
DFと
MSU V2
1 12 0.00
2 11 0.00
3 6 0.00
4 5 10.25
5 6 8.50
6 6 7.25
機能は、BA 2列と同じ値を持つ追加の列が、そこに付加されていないはずです。私は、ループが実行されていることを示すためにprintを使いました。値は3列目に置くことを期待しています。
MSU V2
1 12 0.00
2 11 0.00
3 6 0.00
4 5 10.25
5 6 8.50
6 6 7.25