小编Lee*_*lez的帖子

For循环有条件地翻转数据框中的值的符号

我正在尝试在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)

loops for-loop if-statement r

5
推荐指数
1
解决办法
92
查看次数

标签 统计

for-loop ×1

if-statement ×1

loops ×1

r ×1