我正在尝试在R中创建一个for循环,它将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"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,此for循环为我提供以下内容:
x y z Flip
1 4 …Run Code Online (Sandbox Code Playgroud)