Con R base: paises <- factor(c("a", "b", "c", "c", "a"))
zonas <- c("norte", "norte", "sur") names(zonas) <- c("a", "b", "c") zonas_paises <- paises levels(zonas_paises) <- zonas[levels(zonas_paises)] zonas_paises Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El mié., 6 mar. 2019 a las 15:41, Xavier-Andoni Tibau Alberdi (< xaviti...@gmail.com>) escribió: > No, No. Fíjate en el Ifelse(condición, valor si positivo, valor si > negativo). > > Si, x %in% ca entonces el valor devuelto es "ca", un factor. En caso > negativo, vamos al siguiente bloque iflese, que comprueba si el país esta > en el siguiente grupo, na. Si está en na nos devuelve "na". Vamos, que la > función mira en que grupo esta ese país y te devuelve una string, > correspondiente al país. Así que ahora tienes un factor, con 5 posibles > valores ("ca", "na", ..., "ea"). Es lo que quieres no? > > Xavier Tibau > > Missatge de Antonio Rodriguez Andres <antoniorodriguezandre...@gmail.com> > del dia dc., 6 de març 2019 a les 15:34: > > > 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 > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es