R: ifelse on string -


i populating new variable of dataframe, based on string conditions variable. receive following error msg:

error in source == "httpwww.bgdailynews.com" | source == : operations possible numeric, logical or complex types

my code follows:

county <- ifelse(source == 'httpwww.bgdailynews.com' | 'www.bgdailynews.com', 'warren', ifelse(source == 'httpwww.hclocal.com' | 'www.hclocal.com', 'henry', ifelse(source == 'httpwww.kentucky.com' | 'www.kentucky.com', 'fayette', ifelse(source == 'httpwww.kentuckynewera.com' | 'www.kentuckynewera.com', 'christian') )))

i suggest break down nested ifelse statement more manageable chunks.

but error telling you cannot use | that. 'a' | 'b' doesn't make sense since logical comparison. instead use %in%:

source %in% c('htpwww.bgdailynews.com', 'www.bgdailynews.com') 

i think... if understand you're doing, better off using multiple assignments:

county = vector(mode='character', length=length(source)) county[county %in% c('htpwww.bgdailynews.com', 'www.bgdailynews.com')] <- 'warren' etc. 

you can use switch statement type of thing:

myfun <- function(x) {   switch(x,          'httpwww.bgdailynews.com'='warren',          'httpwww.hclocal.com'='henry',          etc...) } 

then want simple apply (sapply) passing each element in source myfun:

county = sapply(source, myfun) 

or finally, can use factors , levels, i'll leave exercise reader...


Comments

Popular posts from this blog

php - get table cell data from and place a copy in another table -

javascript - Mootools wait with Fx.Morph start -

php - Navigate throught databse rows -