[R-es] crear variable en base a nombre de columnas que tienen un 1

Carlos J. Gil Bellosta cgb en datanalytics.com
Vie Abr 11 13:49:24 CEST 2014


¿Algo así?

var1 <- c(rep(0,3),rep(1,2))
var2 <- c(rep(1,2),0,0,1)
var3 <- c(rep(1,2),rep(0,3))
var4 <- c(rep(1,2),rep(0,3))
datos <- data.frame(fila=1:5,var1, var2, var3, var4)

library(reshape2)

tmp <- melt(datos, id.vars="fila")

tmp$uno <- as.character(tmp$variable)
tmp$uno[tmp$value != 1] <- "0"

res <- dcast(tmp, fila ~ variable, value.var = "value")
res <- dcast(tmp, fila ~ variable, value.var = "uno")

Igual simplemente quieres trabajar con los datos en columna.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

El día 11 de abril de 2014, 12:54, José Luis Cañadas Reche
<canadasreche en gmail.com> escribió:
> Buenos días.
>
> Hoy ando un poco (o bastante) espeso y no doy con la tecla de una cosa que
> seguro que es muy simple..
>
> Pongo un ejemplo.
>
> var1 <- c(rep(0,3),rep(1,2))
> var2 <- c(rep(1,2),0,0,1)
> var3 <- c(rep(1,2),rep(0,3))
> var4 <- c(rep(1,2),rep(0,3))
> datos <- data.frame(fila=1:5,var1, var2, var3, var4)
>
> datos
> datos
>   fila var1 var2 var3 var4
> 1    1    0    1    1    1
> 2    2    0    1    1    1
> 3    3    0    0    0    0
> 4    4    1    0    0    0
> 5    5    1    1    0    0
>
> El caso es que quiero crear 3 variables nuevas p1, p2 y p3 de forma que p1
> recoja el nombre de la primera variables dónde hay un 1 .
>
> Se quedaría
>
> datos
>   fila var1 var2 var3 var4   p1   p2   p3
> 1    1    0    1    1    1 var2 var3 var4
> 2    2    0    1    1    1 var2 var3 var4
> 3    3    0    0    0    0    0    0    0
> 4    4    1    0    0    0 var1    0    0
> 5    5    1    1    0    0 var1 var2    0
>
>
> El caso es que no puedo haber más de 3 respuestas. En mis datos reales tengo
> más de 600 variables de tipo 0,1 , pero nadie ha contestado más de 3
> respuestas.
> ¿cómo podría asignar a p1, p2 y p3 el nombre de las variables dónde hay un
> 1?
>
> alguna idea?
>
> Saludos.
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



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