Я исключаю приведенный ниже код для выполнения следующих действий: - если текущее значение меньше предыдущего, измените его на предыдущее.
Но, как вы уже сделали предположил, это не ведет себя так. Когда я печатаю i между итерациями, я вижу, что преобразования выполнены, но они не реализованы в списке drop_rate.
Есть предложения, как обновить этот код, чтобы изменения вносились в список?
drop_rate<-list(
x1=c(0.0000000,0.2666667,0.3466667,0.4666667,0.3866667,0.7333333),
x2=c(0.0000000,0.3076923,0.4102564,0.5000000,0.4230769,0.7307692),
x3=c(0.0000000,0.2763158,0.3815789,0.4736842,0.4210526,0.7368421),
x4=c(0.0000000,0.2987013,0.3896104,0.5064935,0.4285714,0.7402597),
x5=c(0.0000000,0.3116883,0.4025974,0.5064935,0.4285714,0.7272727))
for (i in drop_rate){
if (i[1]>i[2]){i[2]=i[1]}
if (i[2]>i[3]){i[3]=i[2]}
if (i[3]>i[4]){i[4]=i[3]}
print(i)
if (i[4]>i[5]){i[5]=i[4]}
print(i)
if (i[5]>i[6]){i[6]=i[5]}
}
Ожидаемое отделение (то, что должно измениться, ограничено **):
0.0000000,0.2666667,0.3466667,0.4666667,**0.4666667**,0.7333333
0.0000000,0.3076923,0.4102564,0.5000000,**0.5000000**,0.7307692
0.0000000,0.2763158,0.3815789,0.4736842,**0.4736842**,0.7368421
0.0000000,0.2987013,0.3896104,0.5064935,**0.5064935**,0.7402597
0.0000000,0.3116883,0.4025974,0.5064935,**0.5064935**,0.7272727