Re: [R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Antonio Rodriguez Andres
Gracias

On Wed, 6 Mar 2019 at 15:47, Xavier-Andoni Tibau Alberdi <
xaviti...@gmail.com> wrote:

> Pues ahí lo tienes. Usa %in% para ver si esta en ese grupo, y en caso de
> estarlo pones el nombre del grupo. Aquí un ejemplo.
> https://www.datamentor.io/r-programming/ifelse-function/
>
> Saludos,
>
> Xavi
>
> Missatge de Antonio Rodriguez Andres 
> del dia dc., 6 de març 2019 a les 15:44:
>
>> Si lo que quiero es crear una variable llamada por ejemplo region (del
>> tipo factor) con esos 5 valores
>>
>> On Wed, 6 Mar 2019 at 15:41, Xavier-Andoni Tibau Alberdi <
>> xaviti...@gmail.com> wrote:
>>
>>> 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 
>>> 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 

Re: [R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Antonio Rodriguez Andres
Si lo que quiero es crear una variable llamada por ejemplo region (del tipo
factor) con esos 5 valores

On Wed, 6 Mar 2019 at 15:41, Xavier-Andoni Tibau Alberdi <
xaviti...@gmail.com> wrote:

> 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 
> 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 
>>> 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)
>>
>>
>>

-- 

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

Re: [R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Carlos J. Gil Bellosta
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 
> 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
> 

Re: [R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Xavier-Andoni Tibau Alberdi
Pues ahí lo tienes. Usa %in% para ver si esta en ese grupo, y en caso de
estarlo pones el nombre del grupo. Aquí un ejemplo.
https://www.datamentor.io/r-programming/ifelse-function/

Saludos,

Xavi

Missatge de Antonio Rodriguez Andres 
del dia dc., 6 de març 2019 a les 15:44:

> Si lo que quiero es crear una variable llamada por ejemplo region (del
> tipo factor) con esos 5 valores
>
> On Wed, 6 Mar 2019 at 15:41, Xavier-Andoni Tibau Alberdi <
> xaviti...@gmail.com> wrote:
>
>> 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 
>> 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)
>>>
>>>
>>>
>
> --
>
> Member, 

Re: [R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Xavier-Andoni Tibau Alberdi
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 
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 
>> 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


Re: [R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Antonio Rodriguez Andres
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 
> 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


Re: [R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Xavier-Andoni Tibau Alberdi
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 
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
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


[R-es] Crear una variable tipo factor a partir de un vector de caracteres

2019-03-06 Por tema Antonio Rodriguez Andres
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