如果第三列中的值为负数,我想交换/切换两列中的值。
id <- c("1", "2", "3", "4", "5")
effect <- c("A", "C", "G", "A", "G")
non_effect <- c("C", "A", "T", "C", "C")
variable1 <- c("X", "X", "X", "X", "X")
variable2 <- c("Y", "Y", "Y", "Y", "Y")
value <-c("0.2", "-0.1", "-0.3", "0.5", "0.8")
df <- data.frame(id,effect,non_effect,variable1,variable2,value)
Run Code Online (Sandbox Code Playgroud)
我会将其作为 data.frame 获取
id effect non_effect variable1 variable2 value
1 A C X Y 0.2
2 C A X Y -0.1
3 G T X Y -0.3
4 A C X Y 0.5
5 G C X Y 0.8
Run Code Online (Sandbox Code Playgroud)
我想要的是:
id effect non_effect variable1 variable2 value
1 A C X Y 0.2
2 A C X Y 0.1
3 T G X Y 0.3
4 A C X Y 0.5
5 G C X Y 0.8
Run Code Online (Sandbox Code Playgroud)
df %>%
transform(effect = ifelse(value < 0, non_effect, effect),
non_effect = ifelse(value < 0, effect, non_effect),
value = abs(as.numeric(value)))
# A tibble: 5 x 6
id effect non_effect variable1 variable2 value
<chr> <chr> <chr> <chr> <chr> <dbl>
1 1 A C X Y 0.2
2 2 A C X Y 0.1
3 3 T G X Y 0.3
4 4 A C X Y 0.5
5 5 G C X Y 0.8
Run Code Online (Sandbox Code Playgroud)