R: Как использовать оператор if с grepl - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь классифицировать фрейм данных, определяя, содержит ли одна из двух переменных определенные элементы.

То, что я хочу, это "если столбец A или B содержит x, то столбец C = 1", "если столбец A или B содержит y, столбец C = 2" и т. Д.

 df$C <- if(grepl("x", df$A, ignore.case = TRUE)), "1"

Я получаю сообщение об ошибке:

unexpected ',' in "df$C <- if(grepl("x", df$A, ignore.case = TRUE)), "1"

1 Ответ

2 голосов
/ 10 июля 2019

Нам не нужно , в if.Сказав это, вывод grepl является логическим, который может быть приведен к двоичному с помощью as.integer

as.integer(grepl("x", df$A, ignore.case = TRUE))

Если число строк больше 1, используйте ifelse вместо if/elseдля изменения на разные значения или для сложной логики

...