Pero eso es para crear variables binarias tipo 0-1 si el pais pertence a un determinado grupo. Lo que quiero es crear una variable de tipo factor con esos 5 niveles, sabiendo que tengo en el dataframe una variable llamada Country, con el nombre del pais. Gracias
On Wed, 6 Mar 2019 at 15:27, Xavier-Andoni Tibau Alberdi < xaviti...@gmail.com> wrote: > Buenas, > > Para ello yo uso el operador %in%, que me dice si algo esta dentro de un > vector. Luego hago bucles de if else, pero usando la función iflese(). Si > país X esta en países lista ca, entonces "ca",etc. Puedes crear una función > que englobe ese iflese(), para aplicarla para cada columna del dataframe. > > Algo así como: > > func1 <- func (x) {ifelse(x %in% ca, "ca", ifelse(x %in% na,"na", ..., > ifelse(x %in% ea, "ea", "otros"))...)} > > espero que te sirva! > > Xavier Tibau > > > > Missatge de Antonio Rodriguez Andres <antoniorodriguezandre...@gmail.com> > del dia dc., 6 de març 2019 a les 15:10: > >> Hola estimados miembros de la comunidad de R >> >> Tengo un conjunto de datos, donde tengo observaciones por países y por >> año. >> Una de las variables del dataframe es el nombre del país. Queremos dividir >> los países, que son países africanos de acuerdo a 5 regiones: norte de >> africa, africa del este, sur africa, etc >> >> Yo lo que he hecho ha sido crear vectores con el nombre de cada uno de los >> países en cada uno de ellos, por ejemplo este de Africa Central, >> >> ca <- c("Angola", "Cameroon", "Cabo Verde", "Central African Republic", >> "Chad","Equatorial Guinea", "Eritrea", "Ethiopia", >> "Gabon", "Sao Tome and Principe") >> class(ca) >> character >> >> luego hice un ifelse para crear una variable binaria 1 si es pais de >> Central Africa y cero sino lo es >> >> afdata$Country.centralafrica <- ifelse(afdata$Country %in% ca,1,0) >> >> Sin embargo, para el análisis podría ser más interesante crear una >> variable >> nueva por ejemplo region y tratarla como factor,. Mi pregunta es como >> podria pasar esos 5 vectores con el nombre de los paises de cada region a >> una sola variable tratada como un factor y con esos 5 niveles ( 5 >> regiones). Lo que he tratado es de hacer esto para genera una nueva >> variable en el dataframe, pero me da que todo es igual false, en el valor, >> >> afdata$region <- with(afdata,{ >> (Country == "ca" |Country == "na" | Country == "sa" | Country == "wa" | >> Country == "ea") >> }) >> Debo de indicar otra condición? >> >> Agradezco alguna pista >> >> -- >> >> Member, Editorial Committee, *The Economic and Labour Relations Review* (a >> SAGE journal) >> >> http://elr.sagepub.com/ >> >> Member, Editorial Committee, African Journal of Economic and Management >> Studies >> >> >> http://emeraldgrouppublishing.com/products/journals/editorial_team.htm?id=ajems >> >> https://www.researchgate.net/profile/Antonio_Andres (Research Gate >> profile) >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > -- Member, Editorial Committee, *The Economic and Labour Relations Review* (a SAGE journal) http://elr.sagepub.com/ Member, Editorial Committee, African Journal of Economic and Management Studies http://emeraldgrouppublishing.com/products/journals/editorial_team.htm?id=ajems https://www.researchgate.net/profile/Antonio_Andres (Research Gate profile) [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es