Есть несколько способов сделать это.Один способ с использованием функции sign
, которая возвращает sign
числа
df$d <- with(df, ifelse(sign(a) == -1, b, c))
df
# a b c d
#1 -2 A G A
#2 1 G C C
#3 3 T C C
#4 -4 A G A
или с dplyr
if_else
library(dplyr)
df %>% mutate(d = if_else(a < 0, b, c))
данные
df <- structure(list(a = c(-2L, 1L, 3L, -4L), b = c("A", "G", "T",
"A"), c = c("G", "C", "C", "G")), .Names = c("a", "b", "c"), row.names = c(NA,
-4L), class = "data.frame")