我有一个数据帧,它包含一个指示符和一个值,只要该指示符="X〃;,我想谈谈公司的价值。
我可以使用which很容易地做到这一点,找到指数和否定,但我想使用dplyr
我们可以使用
library(dplyr)
df1 %>%
mutate(value = case_when(indicator == 'X' ~ -1 * value, TRUE ~ value))
考虑到您有这样的数据帧-
df <- data.frame(indicator = c('X', 'Y', 'X', 'X', 'Y', 'Y'), value = 1:6)
df
# indicator value
#1 X 1
#2 Y 2
#3 X 3
#4 X 4
#5 Y 5
#6 Y 6
你可以使用-
df$value[df$indicator == 'X'] <- df$value[df$indicator == 'X'] * -1
df
# indicator value
#1 X -1
#2 Y 2
#3 X -3
#4 X -4
#5 Y 5
#6 Y 6