Я пытаюсь создать простой For L oop, который будет проходить через столбец чисел в моем кадре данных и выполнять три различные простые математические функции для столбца чисел на основе простых условий.
В основном, если мое значение RiB меньше или больше константы (pos_RiB <- 0.011, neg_RiB <- -0.011) Я хочу, чтобы написанная мной функция выполняла математические вычисления для значения RiB и сохраняла его, если значение RiB находится между константами, я хочу, чтобы значение RiB просто сохранялось как есть. </p>
Вот мой код:
#Set empty storage vector
vec <- vector()
#Set positive and negative RiB constants for loop
#Create functions for different atmospheric stability conditions
RiB <- sp3_join_a$RiB
Unstable <- function(RiB){
(1-(16*RiB))^0.75
}
Stable <- function(RiB){
(1-(5*RiB))^2
}
Neutral <- function(RiB){
RiB == RiB
}
#Condition constants
pos_RiB <- 0.011
neg_RiB <- -0.011
#For Loop
for(i in (sp3_join_a$RiB)){
if (sp3_join_a$RiB > pos_RiB){
vec[i] <- Unstable(sp3_join_a$RiB[i])
}
else if (sp3_join_a$RiB < neg_RiB){
vec[i] <- Stable(sp3_join_a$RiB[i])
}
else (sp3_join_a$RiB < pos_RiB && sp3_join_a > neg_RiB)
vec[i] <- Neutral(sp3_join_a$RiB[i])
}
sp3_join_a$vec <- vec
В моем фрейме данных sp3_join_a $ значения RiB имеют цифры c и выглядят как (0,15099768 0,13389330 0,08309406 0,06137715 0,06234167 0,05491064 0,04332422 0,05 593 053,03,05,053,05,063,063,063,063,063,063,063,063,063,063,05,063,05,063,05,063,05,063,05,063,05,063,05,058,05,075,058,05,075,058,05,086,05,058,05,086,058,05 0 были бы увеличивать *.