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

Antonio Rodriguez Andres @nton|orodr|guez@ndre@70 @end|ng |rom gm@||@com
Mie Mar 6 15:34:25 CET 2019


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 <
xavitibau using 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 <antoniorodriguezandres70 using 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 using 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]]



Más información sobre la lista de distribución R-help-es