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

José Luis Cañadas Reche canadasreche en gmail.com
Vie Abr 11 12:54:44 CEST 2014


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.



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