Я пытаюсь создать цикл for в R, который будет 1) идентифицировать отрицательное число как столбец, 2) перевернуть знак в положительный, 3) затем перевернуть знак (в любом направлении) выбранных столбцов для того же строка, а затем создать фактор, определяющий, были ли знаки перевернуты для нет.
Ниже приведен пример. Я хочу, чтобы все отрицательные значения в столбце "z" стали положительными, а затем для любой строки, где это произошло (строки 4-8), я хочу, чтобы знак значений в столбце "y" был перевернут.
Example <- data.frame(x = 4:-3, y = -4:3, z = 2:-5)
x y z
1 4 -4 2
2 3 -3 1
3 2 -2 0
4 1 -1 -1
5 0 0 -2
6 -1 1 -3
7 -2 2 -4
8 -3 3 -5
for (i in Example$z){
if(sign(i) == -1){
Example$z[i] <- (Example$z[i]*-1)
Example$y[i] <- (Example$y[i]*-1)
Example$Flip[i] <- "True"
}
else{
Example$Flip[i] <- "False"
}
}
Однако этот цикл for дает мне следующее:
x y z Flip
1 4 -4 2 True
2 3 -3 1 True
3 2 -2 0 True
4 1 -1 -1 True
5 0 0 -2 True
6 -1 -1 3 True
7 -2 -2 4 True
8 -3 -3 5 True
То, что я хотел создать, это:
x y z Flip
1 4 -4 2 False
2 3 -3 1 False
3 2 -2 0 False
4 1 1 1 True
5 0 0 2 True
6 -1 -1 3 True
7 -2 -2 4 True
8 -3 -3 5 True
Что я делаю не так при построении этого цикла? Любая помощь с благодарностью!