Мы могли бы использовать sign
, чтобы получить знак всех элементов кадра данных, а затем повернуть его, умножив на -1.
df[-1] <- sign(df[-1]) * -1
df
# Name A B C
#1 apple -1 1 0
#2 banana -1 1 -1
#3 pear 1 0 -1
С ?sign
знак возвращает вектор со знаками соответствующих элементов x (знак действительного числа равен 1, 0 или -1, если число положительное, ноль или отрицательное, соответственно).
данные
df <- structure(list(Name = structure(1:3, .Label = c("apple", "banana",
"pear"), class = "factor"), A = c(-1, -1, 1), B = c(1, 1, 0),
C = c(0, -1, -1)), .Names = c("Name", "A", "B", "C"), row.names = c(NA,
-3L), class = "data.frame")