Как бы я создать оператор if для строк на основе нескольких условий в R? - PullRequest
1 голос
/ 30 марта 2020

Поэтому я хочу создать новый столбец в моем наборе данных, который будет «1», если «Истина», и «0», если «ложь».

Мои данные настроены примерно так:

v1 v2 v3
a  b  c
b  b  c
d  b  c

Допустим, я хочу, чтобы в моем операторе if было указано, что если v1 равно a, b или c, то новый столбец будет 1. При этом новом условии я бы хотел, чтобы мой новый набор данных выглядел следующим образом .

v1 v2 v3 v4
a  b  c  1
b  b  c  1
d  b  c  0

Как мне go настроить это? Надеюсь, я объяснил это разумно и постарался максимально упростить.

1 Ответ

1 голос
/ 30 марта 2020

Если нам нужно фиксированное совпадение, используйте %in% для более чем одного элемента, вернет логический вектор, который может быть приведен к двоичному с помощью +

 df1$v4 <- +(df1$v1 %in% c('a', 'b', 'c'))

Или используйте as.integer

df1$v4 <- as.integer(df1$v1 %in% c('a', 'b', 'c'))

Если мы ищем совпадения подстрок, используйте grepl

df1$v4 <- as.integer(grepl("(a|b|c)$", df1$v1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...