根据 R 中的条件更改变量的值

Changing value of a variable based on condition in R

我正在尝试根据其他变量更改一个变量的值。因此,如果一个变量的值等于第二个变量的值,则第三个变量的值应乘以 -1。

我的代码如下所示:

df <- df %>%
       mutate (C = case_when((A1) == (A2) & (R1) == (R2) ~ C,
                                (A1) == (R1) & (A2) == (R2) ~ (-1L)*C))

其中A1、A2、R1、R2为字符型变量,C为数值型变量。

我明白了

error: case_when(...)`.
must be a double vector, not a logical vector.

如果我将 (-1L) 更改为 (-1),那么它会给出 C

的 NA

TIA!!

也许以下会解决问题。
不要检查没有变化的条件,只保留变化条件和 TRUE 子句中的所有其他条件。

df <- df %>%
  mutate(
    C = case_when(
      (A1 == R1) & (A2 == R2) ~ -1L*C,
      TRUE ~ C
  ))