[R-es] Transformar muchas variables factor en variables binarias de acuerdo a niveles

Juan Abasolo ju@n@@b@@olo @ending from ehu@eu@
Lun Jun 25 15:48:48 CEST 2018


Buenas, compañeros.

Tengo una base de datos con bastantes variables todas medidas como factor,
quiero que todos los factores pasen a ser variables binarias en función de
sus valores.

En este ejemplo de Stackoverflow muestran como hacerlo con una variable:
https://stackoverflow.com/questions/33990760/converting-factors-to-binary-in-r

df  <-data.frame(a = c(1,2,3), b = c(1,1,2), c =
c("Rose","Pink","Red"), d = c(2,3,4))

cbind(df[1:2], sapply(levels(df$c), function(x) as.integer(x == df$c)), df[4])

o así

library(data.table)
setDT(df)[, c(levels(df$c), "c") :=
    c(lapply(levels(c), function(x) as.integer(x == c)), .(NULL))]


Pero no me resuelve el tener que hacerlo algunos cientos de veces, que es
lo que querría evitar. Sé que es evidente cómo se tiene que hacer, pero soy
ciego a esa evidencia :-(

Muchas gracias por la ayuda


-- 
Juan Abasolo

Hizkuntzaren eta Literaturaren Didaktika Saila
Bilboko Hezkuntza Fakultatea
Euskal Herriko Unibertsitatea
UPV/EHU

Sarriena auzoa z/g
48940 Leioa
Bizkaia

	[[alternative HTML version deleted]]



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