#r #string
#r #строка
Вопрос:
У меня есть набор данных, который выглядит следующим образом:
id. string
1 US-EU-MX
2 EU-MX-US
3 US-MX-CA
Как мне создать фиктивную переменную на основе того, содержит ли строка «EU», чтобы конечный набор данных выглядел следующим образом?
id. string dummy
1 US-EU-MX 1
2 EU-MX-US 1
3 US-MX-CA 0
Спасибо, вы все!
Ответ №1:
Вы могли бы использовать grepl
для поиска шаблона и преобразования логических значений в целочисленные.
df$dummy <- as.integer(grepl('EU', df$string))
df
# id. string dummy
#1 1 US-EU-MX 1
#2 2 EU-MX-US 1
#3 3 US-MX-CA 0
Использование as.integer
логических значений короче и быстрее, чем использование ifelse
.
df$dummy <- ifelse(grepl('EU', df$string), 1, 0)
данные
df <- structure(list(id. = 1:3, string = c("US-EU-MX", "EU-MX-US",
"US-MX-CA")), class = "data.frame", row.names = c(NA, -3L))
Ответ №2:
Мы можем использовать
df$dummy <- (grepl('EU', df$string))