我有一个这样的数据框:
df <- data.frame(x = c("A", "B", "C", "D"),
y = c(-1, -2, 3, 1))
如果df$y
的值小于0,我想将A
的值乘以-1,就像这里的情况。因此,它不是(-1, -2, 3, 1)
,而是变成(1, 2, -3, -1)
。
我最近得到的是:
df$y <- ifelse(df[df$x == "A", 2] < 0, df$y*-1, df$y)
谢谢!
答案 0 :(得分:2)
您可以这样做:
df$y <- ifelse(df$x == "A" & df$y < 0, df$y * -1, df$y)
如果要全部相乘,则类似:
df$y <- if (any(df$x == "A" & df$y < 0)) df$y * -1 else df$y