Променете стойността на колона въз основа на това дали низът е в друга колона, като използвате 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