Мы можем использовать ifelse
вместо if/else
, поскольку ifelse
векторизовано
df1$score <- with(df1, ifelse(pos > neg, 1, ifelse(pos < neg, -1, 0)))
Или получите разницу 'pos' и 'neg' и примените sign
, который даст значения -1, 0, 1, когда знак отрицательный, значение 0 или положительное
df1$score <- with(df1, sign(pos - neg ))
данные
df1 <- data.frame(pos = c(5, 4, 3, 1, 2), neg = c(5, 3, 4, 1, 3))