Ifelse语句是否在for循环中?

anauzrmj  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(138)

我有一个 Dataframe ,我需要改变所有的负值为正值,然后改变的值乘以100,即乘以-100所有负值。我必须使用循环和ifelse。我的 Dataframe ;x是因子列,y是序列,z是c()

x  y  z
1 a -4  3
2 b -2  4
3 c  0 -5
4 d  2  6
5 e  4 -8

这段代码是我最接近期望的结果,但它离我需要的还很远。

for(i in df[-1]) {
  ifelse(i < 0, print(df <- 
   df[-1]*-100), print(df))

}
我知道df[-1]*-100将乘以除第1行以外的所有值。我尝试过如下索引i,但这给了我一个错误“只有0可以与负下标混合”:

for(i in df[-1]) {
 ifelse(i < 0, print(df <- 
  df[i]*-100), print(df[i]))

}

ovfsdjhp

ovfsdjhp1#

我们来看看将两个矢量化函数abs*应用于最后两列的简单性:

dfrm <- read.table(text="x  y  z
 1 a -4  3
 2 b -2  4
 3 c  0 -5
 4 d  2  6
 5 e  4 -8",head=TRUE)
 dfrm[-1] <- abs(dfrm[-1])*100

> dfrm
  x   y   z
1 a 400 300
2 b 200 400
3 c   0 500
4 d 200 600
5 e 400 800

相关问题