[R-es] Asignar factor levels a nuevos datos

Víctor Granda García victorgr@nd@g@rci@ @ending from gm@il@com
Vie Jun 22 21:04:00 CEST 2018


Buenas Ruben,

Echa un vistazo a parse_factor de la librería forcats. En tu ejemplo seria
algo así:

library(forcats)
parse_factor(marcas2, levels(marcas1))

Esto también lo puedes hacer directamente con factor sin necesidad de
instalar otro paquete como forcats

factor(marcas2, levels(marcas1))

Pero la ventaja de forcats y parse_factor es que te dará error si alguno de
los valores de marcas2 no es valido (no esta entre los niveles que has
establecido), lo que si estas usando esto dentro de una función añade una
capa extra de seguridad en el funcionamiento de tu funcion. ( sabrás que el
nuevo vector tiene algo que no deberia).

Espero que te sirva!!

El vie., 22 jun. 2018 18:50, Rubén Coca <ruben.coca using gmail.com> escribió:

> Hola,
> imaginemos que tengo este vector convertido a factor:
>
> # -------
> marcas1 <- factor(c('audi', 'opel', 'seat', 'toyota', 'opel'))
>
> str(marcas1)
>
> Factor w/ 4 levels "audi","opel",..: 1 2 3 4
>
>
> ¿Como puedo asignar la info de los niveles de marcas1 a un vector nuevo?
> Por ejemplo:
> marcas2 <- c('toyota', 'audi', 'audi', 'opel', 'audi')
>
> Asumo que marcas2 no va a contener ninguna marca no presente en marcas1.
>
> Muchas gracias por vuestra ayuda.
>
>         [[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
>
-- 
*Víctor Granda García*
Data Technician


v.granda using creaf.uab.cat
Tel. +34 93 581 33 53


Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat*
<http://www.creaf.uab.es/cat/index.htm>

Abans d'imprimir aquest missatge electrònic penseu en el medi ambient.

	[[alternative HTML version deleted]]



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