R - если функция оператора, чтобы установить значение нового столбца - PullRequest
1 голос
/ 30 марта 2019

У меня есть 2 столбца pos и neg, каждый из которых имеет целочисленное значение.

Я хотел бы создать новый столбец score, где каждому элементу этого столбца присвоено значение:

  • 1, если pos> neg
  • 0, если pos = neg
  • -1, если pos

Каков наилучший способ сделать это? Я новичок в создании функций в R, поэтому любая помощь или направление приветствуется.

1 Ответ

3 голосов
/ 30 марта 2019

Мы можем использовать 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...