Мне нужно применить функцию к вектору b3, но вставить 0 (и не применять функцию), когда b3 <0. </p>
> b3
[1] 1.5 0.5 5.5 0.5 9.5 8.5 4.5 3.5 3.5 3.5 1.5 -0.5 1.5 5.5 9.5
[16] 5.5 2.5 1.5 2.5 3.5 9.5 -0.5 4.5 2.5 1.5 4.5 -0.5 -0.5 1.5 0.5
> unlist(lapply(b3, function(x) {seq(from = 0.5, to = x)}))
[1] 0.5 1.5 0.5 0.5 1.5 2.5 3.5 4.5 5.5 0.5 0.5 1.5 2.5 3.5 4.5
[16] 5.5 6.5 7.5 8.5 9.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 0.5
[31] 1.5 2.5 3.5 4.5 0.5 1.5 2.5 3.5 0.5 1.5 2.5 3.5 0.5 1.5 2.5
[46] 3.5 0.5 1.5 0.5 -0.5 0.5 1.5 0.5 1.5 2.5 3.5 4.5 5.5 0.5 1.5
[61] 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 0.5 1.5 2.5 3.5 4.5 5.5 0.5
[76] 1.5 2.5 0.5 1.5 0.5 1.5 2.5 0.5 1.5 2.5 3.5 0.5 1.5 2.5 3.5
[91] 4.5 5.5 6.5 7.5 8.5 9.5 0.5 -0.5 0.5 1.5 2.5 3.5 4.5 0.5 1.5
[106] 2.5 0.5 1.5 0.5 1.5 2.5 3.5 4.5 0.5 -0.5 0.5 -0.5 0.5 1.5 0.5
дает мне то, что мне нужно, но у меня есть проблемы с негативамизначения b3.Итак, как ввести 0 каждый раз, когда функция получает отрицательное значение в b3?Вот что я получил:
> unlist(lapply(b3, function(x) {ifelse(x>0,seq(from = 0.5, to = x),0)}))
[1] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.5 0.5 0.5 0.5
[20] 0.5 0.5 0.0 0.5 0.5 0.5 0.5 0.0 0.0 0.5 0.5
работает для отрицательных значений, но моя функция работает не так, как ожидалось ...