Поскольку ваши данные закодированы как двоичные 0/1, мы можем просто использовать логический оператор ИЛИ, |
.
## very nice way to solve this particular problem
x$com = x$Group.finalCvsM | x$Group.finalCvsS
## The result will be TRUE or FALSE.
## If you want 1/0 instead, then wrap it in as.integer:
x$com = as.integer(x$Group.finalCvsM | x$Group.finalCvsS)
В общем случае , ifelse()
- это векторизованная версия if
, которая предназначена для подобных случаев. Смотрите страницу помощи ?ifelse
для некоторых деталей. Здесь вы будете использовать его как:
x$com = ifelse(x$Group.finalCvsM == 1 | x$Group.finalCvsS == 1, 1, 0)
( Примечание :: , поскольку ваш вопрос не дает пример ввода и желаемый вывод, я не уверен на 100%, хотите ли вы ИЛИ |
. Может быть, вы хотите &
? Оба работают нормально , используйте то, что соответствует вашей цели.)