У меня есть цикл, который работает, но не когда я пытаюсь использовать его в функции.
Ниже показан кадр данных до и после циклов
DF
MSU
1 12
2 11
3 6
4 5
5 6
6 6
Loop
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 после цикла, добавлен дополнительный столбец со средним значением последних четырех значений, если только число значений не было меньше четырех.
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
Функция с циклом
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 после функции с циклом, должен быть дополнительный столбец с теми же значениями, что и столбец 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