Изменить значение столбца в зависимости от того, находится ли строка в другом столбце, используя R

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

 name
  Jon
  Anne
Jobraith
  Knut

Становится:

 name      dummy
  Jon        1
  Anne       0
Jobraith     1
  Knut       0

ищет что-то вроде:

df$dummy <- ifelse('jo' in df$name, 1, 0)


person Luke    schedule 25.10.2014    source источник


Ответы (1)


Вы можете использовать grepl( ... ) для проверки подстрока...

df <- data.frame(name = c('Jon', 'Anne', 'Jobraith', 'Knut'))
df$dummy <- as.numeric(grepl('jo', df$name, ignore.case=T))
df

#       name dummy
# 1      Jon     1
# 2     Anne     0
# 3 Jobraith     1
# 4     Knut     0
person hwnd    schedule 25.10.2014
comment
Почему вы используете ifelse здесь? Почему не просто as.numeric? - person A5C1D2H2I1M1N2O1R2T1; 25.10.2014
comment
ifelse хорош, потому что он немного более общий в случае, если 0,1 не нужен - person Luke; 26.10.2014