Re: [R-es] loop con matriz que cambia de nombre

2018-06-25 Thread Manuel Mendoza
Gracias Carlos, eso lo sé. El problema, probablemente una chorrada, es  
que para cambiarle el nombre a las variables (de acuerdo a un patrón,  
si, que incluye el nº de la iteración), debo indicar el nombre de la  
df, pero éste no es siempre el mismo. Puedo darle un nombre fijo a la  
df, ponerle el nombre a las variables, y al final del loop cambiarle  
el nombre a la df, pero tampoco sé cómo ponerle un nombre nuevo que  
incluye paste + el nº de iteración de los dos loops anidados. Sé como  
crear ese nombre, con paste, pero no cómo ponérselo. Al decirlo así  
parece una tontería, y a lo mejor lo es, pero me tiré un rato  
intentándolo y no pude. Por eso acudí a vosotros.

Manuel


Quoting Carlos Ortega :


Hola,

En cada iteración de tu bucle, puedes:

   - Cambiar la matriz a data.frame.
   - Nombrar las columnas incluyendo si quieres el número de la iteración
   del bucle (tu "i").
  - Esto lo puedes hacer utiizando la función "paste()".
  - No sé si los nombres de las variables, en cada iteración han de
  seguir algún patrón.


Saludos,
Carlos Ortega
www.qualityexcellence.es

El 22 de junio de 2018, 19:53, Manuel Mendoza 
escribió:



Funciona, me crea una matriz en cada iteración, con un nombre que incluye
el nº de la iteración. Me surge ahora el problema de que, dentro del mismo
bucle la quiero convertir en df y ponerle nombre a las columnas, y como el
nombre de la matriz es distinto cada vez, no sé cómo hacerlo. Supongo que
se hará todo al crearla, pero no sé cómo.

Un problema adicional es que las variables (columnas) también han de
llevar la "i" incluida en el nombre, porque al final se fusionan todas las
dfs y no se puede repetir el nombre de las variables.

Gracias una vez más.




Quoting Jesús Para Fernández :

Con assing y un paste0


Mete dentro del bucle esto

for(i in 1:7){
assign(paste0('matriz',i),matrix(0,ncol=5,nrow=3))

}

Con eso generarias 7 matrices de 5x3, llamadas matriz1, matriz2,...

Obtener Outlook para Android


From: R-help-es  on behalf of Manuel
Mendoza 
Sent: Friday, June 22, 2018 10:15:55 AM
To: r-help-es@r-project.org
Subject: [R-es] loop con matriz que cambia de nombre


Buenos días. Quiero hacer un for (j), anidado en otro for (i). En el
2º for, en cada iteración ha de crear una matriz vacía: mat <-
matrix(nrow=nrow(data),ncol=19) pero llamándola de forma distinta cada
vez. El nombre ha de ser: paste("D",i,colnames(Data[j]),sep=""). Llevo
un rato haciendo pruebas pero no me sale. A ver si alguien pudiera
ayudarme,
gracias,
Manuel



























.
--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es




--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es





--
Saludos,
Carlos Ortega
www.qualityexcellence.es



--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] loop con matriz que cambia de nombre

2018-06-25 Thread Manuel Mendoza
Gracias Javier. Como explicaba en mi contestación a Carlos, el  
problema no está en escribir muchas líneas, ni en rizar el rizo,  
claro. El proceso se lo tengo que aplicar a unas cuantas bases de  
datos, y cada una de ellas me lleva un buen rato porque tengo que  
hacerlo con 9 criterios distintos. Si consigo hacer un loop que me  
haga los 9, que es lo que intento, me ahorrará tiempo.

Manuel



Quoting Javier Marcuzzi :


Estimado Manuel

Justo ahora estoy trabajando en un proceso automatizado con código, pero la
mayoría de las veces tengo ciento de líneas donde mucho es copiar y pegar
más la modificación de una o dos palabras, podría ser un proceso que se
ejecute según criterios hasta la condición, pero la verdad que el objetivo
no es ganar un concurso de ingenio escribiendo código. Usted quiere entrar
en una parte donde R tiene demasiadas posibilidades y criterios,
posiblemente en eso python es más claro. Yo sí tengo que copiar y pegar
cientos de líneas antes que un bucle para acomodar datos, lo hago, prefiero
cientos de bucles pequeños en muchas líneas que pueda leer, antes que pocas
líneas con bucles anidados, aunque el código parezca de principiante.

Javier Rubén Marcuzzi

El dom., 24 de jun. de 2018 4:23 PM, Manuel Mendoza 
escribió:



Gracias Javier, pero creo que si no consigo que me lo haga todo de una
vez con un loop, me merece más la pena hacerlo como hasta ahora, una a
una.
Manuel



Quoting Javier Marcuzzi :

> Estimado Manuel Mendoza
>
> No sería lo ideal, pero de pronto podría ir guardando en json, que es una
> forma no estructurada, luego toma los datos recorriendo este y crea una
> estructura de dataframe para continuar.
>
> Javier Rubén Marcuzzi
>
> El sáb., 23 jun. 2018 a las 8:04, Manuel Mendoza ()
> escribió:
>
>>
>> Bien, Carlos, lo de ir metiendo las dfs en una lista parece buena
>> idea, y después puedo fusionarlas con un cbind, tal y como hago ahora
>> mismo, después de crear cada una de ellas independientemente. Son 9
>> dfs, y obtener cada una de ellas toma bastante tiempo de computación.
>> Lo que quiero es que me haga las 9 en un loop. El problema es que si
>> no les pone nombres distintos a las variables, después no puedo
>> identificarlas, y si les tengo que cambiar yo el nombre, no me merece
>> la pena hace el loop.
>>
>>
>>
>> Quoting "Carlos J. Gil Bellosta" :
>>
>> > Es que no quieres crear objetos con nombres raros en tu entorno. Lo
que
>> > quieres hacer es crear una lista de matrices (o dfs). El consejo
anterior
>> > te explicaba con detalle cómo dispararte en el pie. Realmente, quieres
>> > hacer otra cosa.
>> >
>> > El vie., 22 jun. 2018 a las 19:53, Manuel Mendoza (<
>> mmend...@mncn.csic.es>)
>> > escribió:
>> >
>> >>
>> >> Funciona, me crea una matriz en cada iteración, con un nombre que
>> >> incluye el nº de la iteración. Me surge ahora el problema de que,
>> >> dentro del mismo bucle la quiero convertir en df y ponerle nombre a
>> >> las columnas, y como el nombre de la matriz es distinto cada vez, no
>> >> sé cómo hacerlo. Supongo que se hará todo al crearla, pero no sé
cómo.
>> >>
>> >> Un problema adicional es que las variables (columnas) también han de
>> >> llevar la "i" incluida en el nombre, porque al final se fusionan
todas
>> >> las dfs y no se puede repetir el nombre de las variables.
>> >>
>> >> Gracias una vez más.
>> >>
>> >>
>> >>
>> >>
>> >> Quoting Jesús Para Fernández :
>> >>
>> >> > Con assing y un paste0
>> >> >
>> >> > Mete dentro del bucle esto
>> >> >
>> >> > for(i in 1:7){
>> >> > assign(paste0('matriz',i),matrix(0,ncol=5,nrow=3))
>> >> >
>> >> > }
>> >> >
>> >> > Con eso generarias 7 matrices de 5x3, llamadas matriz1, matriz2,...
>> >> >
>> >> > Obtener Outlook para Android
>> >> >
>> >> > 
>> >> > From: R-help-es  on behalf of
>> >> > Manuel Mendoza 
>> >> > Sent: Friday, June 22, 2018 10:15:55 AM
>> >> > To: r-help-es@r-project.org
>> >> > Subject: [R-es] loop con matriz que cambia de nombre
>> >> >
>> >> >
>> >> > Buenos días. Quiero hacer un for (j), anidado en otro for (i). En
el
>> >> > 2º for, en cada iteración ha de crear una matriz vacía: mat <-
>> >> > matrix(nrow=nrow(data),ncol=19) pero llamándola de forma distinta
cada
>> >> > vez. El nombre ha de ser: paste("D",i,colnames(Data[j]),sep="").
Llevo
>> >> > un rato haciendo pruebas pero no me sale. A ver si alguien pudiera
>> >> > ayudarme,
>> >> > gracias,
>> >> > Manuel
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > .
>> >> > --
>> >> > Dr Manuel Mendoza
>> >> > Department of Biogeography and Global Change
>> >> > National Museum of Natural History (MNCN)
>> >> > Spanish Scientific Council (CSIC)
>> >> > C/ Serrano 115bis, 28006 MADRID
>> >> > Spain
>> >> >
>> >> > ___
>> >> > R-help-es mailing lis

Re: [R-es] loop con matriz que cambia de nombre

2018-06-25 Thread Marcelino de la Cruz Rot

El 25/06/2018 a las 11:23, Manuel Mendoza escribió:
Gracias Carlos, eso lo sé. El problema, probablemente una chorrada, es 
que para cambiarle el nombre a las variables (de acuerdo a un patrón, 
si, que incluye el nº de la iteración), debo indicar el nombre de la 
df, pero éste no es siempre el mismo. Puedo darle un nombre fijo a la 
df, ponerle el nombre a las variables, y al final del loop cambiarle 
el nombre a la df, pero tampoco sé cómo ponerle un nombre nuevo que 
incluye paste + el nº de iteración de los dos loops anidados. Sé como 
crear ese nombre, con paste, pero no cómo ponérselo. Al decirlo así 
parece una tontería, y a lo mejor lo es, pero me tiré un rato 
intentándolo y no pude. Por eso acudí a vosotros.


¿Con assign(), como sugería Jesús?

Saludos,

Marcelino








Manuel


Quoting Carlos Ortega :


Hola,

En cada iteración de tu bucle, puedes:

   - Cambiar la matriz a data.frame.
   - Nombrar las columnas incluyendo si quieres el número de la 
iteración

   del bucle (tu "i").
  - Esto lo puedes hacer utiizando la función "paste()".
  - No sé si los nombres de las variables, en cada iteración han de
  seguir algún patrón.


Saludos,
Carlos Ortega
www.qualityexcellence.es

El 22 de junio de 2018, 19:53, Manuel Mendoza 
escribió:



Funciona, me crea una matriz en cada iteración, con un nombre que 
incluye
el nº de la iteración. Me surge ahora el problema de que, dentro del 
mismo
bucle la quiero convertir en df y ponerle nombre a las columnas, y 
como el
nombre de la matriz es distinto cada vez, no sé cómo hacerlo. 
Supongo que

se hará todo al crearla, pero no sé cómo.

Un problema adicional es que las variables (columnas) también han de
llevar la "i" incluida en el nombre, porque al final se fusionan 
todas las

dfs y no se puede repetir el nombre de las variables.

Gracias una vez más.




Quoting Jesús Para Fernández :

Con assing y un paste0


Mete dentro del bucle esto

for(i in 1:7){
assign(paste0('matriz',i),matrix(0,ncol=5,nrow=3))

}

Con eso generarias 7 matrices de 5x3, llamadas matriz1, matriz2,...

Obtener Outlook para Android


From: R-help-es  on behalf of Manuel
Mendoza 
Sent: Friday, June 22, 2018 10:15:55 AM
To: r-help-es@r-project.org
Subject: [R-es] loop con matriz que cambia de nombre


Buenos días. Quiero hacer un for (j), anidado en otro for (i). En el
2º for, en cada iteración ha de crear una matriz vacía: mat <-
matrix(nrow=nrow(data),ncol=19) pero llamándola de forma distinta cada
vez. El nombre ha de ser: paste("D",i,colnames(Data[j]),sep=""). Llevo
un rato haciendo pruebas pero no me sale. A ver si alguien pudiera
ayudarme,
gracias,
Manuel



























.
--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es




--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es





--
Saludos,
Carlos Ortega
www.qualityexcellence.es





--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2018-06-25 Thread Juan Abasolo
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]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] loop con matriz que cambia de nombre

2018-06-25 Thread Javier Marcuzzi
Estimado Manuel Mendoza

Entonces el problema es simple, primero cree una estructura para almacenar
los datos mediante repeticiones, algún paste() en el medio, de tal forma
que quede como usted desea, para esto comience de cero, no mire el código
con errores para no confundirse, mire algún ejemplo como los que hay en
http://www.datasciencemadesimple.com/repeat-and-replicate-function-in-r/ ,
cree el andamiaje, con algo muy simple como almacenar tablas de multiplicar
en data.frames, luego reemplaza esa función por la función que busca los
datos en la base de datos.

Es la forma que yo tengo, aunque por ahí aparecen errores, por ejemplo
ahora se me cae el código luego de procesar 10 horas, y me pregunto que
pasó para que luego de miles de cosas bien aparezca algo que rompe el
proceso, y bueno, es así, la importación de datos tiene esos problemas.

Javier Rubén Marcuzzi

El lun., 25 jun. 2018 a las 7:03, Marcelino de la Cruz Rot (<
marcelino.delac...@urjc.es>) escribió:

> El 25/06/2018 a las 11:23, Manuel Mendoza escribió:
> > Gracias Carlos, eso lo sé. El problema, probablemente una chorrada, es
> > que para cambiarle el nombre a las variables (de acuerdo a un patrón,
> > si, que incluye el nº de la iteración), debo indicar el nombre de la
> > df, pero éste no es siempre el mismo. Puedo darle un nombre fijo a la
> > df, ponerle el nombre a las variables, y al final del loop cambiarle
> > el nombre a la df, pero tampoco sé cómo ponerle un nombre nuevo que
> > incluye paste + el nº de iteración de los dos loops anidados. Sé como
> > crear ese nombre, con paste, pero no cómo ponérselo. Al decirlo así
> > parece una tontería, y a lo mejor lo es, pero me tiré un rato
> > intentándolo y no pude. Por eso acudí a vosotros.
>
> ¿Con assign(), como sugería Jesús?
>
> Saludos,
>
> Marcelino
>
>
>
>
>
>
>
> > Manuel
> >
> >
> > Quoting Carlos Ortega :
> >
> >> Hola,
> >>
> >> En cada iteración de tu bucle, puedes:
> >>
> >>- Cambiar la matriz a data.frame.
> >>- Nombrar las columnas incluyendo si quieres el número de la
> >> iteración
> >>del bucle (tu "i").
> >>   - Esto lo puedes hacer utiizando la función "paste()".
> >>   - No sé si los nombres de las variables, en cada iteración han de
> >>   seguir algún patrón.
> >>
> >>
> >> Saludos,
> >> Carlos Ortega
> >> www.qualityexcellence.es
> >>
> >> El 22 de junio de 2018, 19:53, Manuel Mendoza 
> >> escribió:
> >>
> >>>
> >>> Funciona, me crea una matriz en cada iteración, con un nombre que
> >>> incluye
> >>> el nº de la iteración. Me surge ahora el problema de que, dentro del
> >>> mismo
> >>> bucle la quiero convertir en df y ponerle nombre a las columnas, y
> >>> como el
> >>> nombre de la matriz es distinto cada vez, no sé cómo hacerlo.
> >>> Supongo que
> >>> se hará todo al crearla, pero no sé cómo.
> >>>
> >>> Un problema adicional es que las variables (columnas) también han de
> >>> llevar la "i" incluida en el nombre, porque al final se fusionan
> >>> todas las
> >>> dfs y no se puede repetir el nombre de las variables.
> >>>
> >>> Gracias una vez más.
> >>>
> >>>
> >>>
> >>>
> >>> Quoting Jesús Para Fernández :
> >>>
> >>> Con assing y un paste0
> 
>  Mete dentro del bucle esto
> 
>  for(i in 1:7){
>  assign(paste0('matriz',i),matrix(0,ncol=5,nrow=3))
> 
>  }
> 
>  Con eso generarias 7 matrices de 5x3, llamadas matriz1, matriz2,...
> 
>  Obtener Outlook para Android
> 
>  
>  From: R-help-es  on behalf of Manuel
>  Mendoza 
>  Sent: Friday, June 22, 2018 10:15:55 AM
>  To: r-help-es@r-project.org
>  Subject: [R-es] loop con matriz que cambia de nombre
> 
> 
>  Buenos días. Quiero hacer un for (j), anidado en otro for (i). En el
>  2º for, en cada iteración ha de crear una matriz vacía: mat <-
>  matrix(nrow=nrow(data),ncol=19) pero llamándola de forma distinta cada
>  vez. El nombre ha de ser: paste("D",i,colnames(Data[j]),sep=""). Llevo
>  un rato haciendo pruebas pero no me sale. A ver si alguien pudiera
>  ayudarme,
>  gracias,
>  Manuel
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>  .
>  --
>  Dr Manuel Mendoza
>  Department of Biogeography and Global Change
>  National Museum of Natural History (MNCN)
>  Spanish Scientific Council (CSIC)
>  C/ Serrano 115bis, 28006 MADRID
>  Spain
> 
>  ___
>  R-help-es mailing list
>  R-help-es@r-project.org
>  https://stat.ethz.ch/mailman/listinfo/r-help-es
> 
> >>>
> >>>
> >>> --
> >>> Dr Manuel Mendoza
> >>> Department of Biogeography and Global Change
> >>> National Museum of Natural History (MNCN)
> >>> Spanish Scientific Council (CSIC)
> >>> C/ Serrano 115bis, 28006 MADRID
> >>> Spain

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

2018-06-25 Thread Carlos J. Gil Bellosta
¿No te vale model.matrix?

El lun., 25 jun. 2018 a las 15:49, Juan Abasolo ()
escribió:

> 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]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2018-06-25 Thread Fernando Reche Lorite via R-help-es
Puedes probar con la función dummy del paquete dummies.

Un saludo
Fernando Reche Lorite
Departamento de Matemáticas
Universidad de Almería

El 25 de junio de 2018, 15:55, Carlos J. Gil Bellosta 
escribió:

> ¿No te vale model.matrix?
>
> El lun., 25 jun. 2018 a las 15:49, Juan Abasolo ()
> escribió:
>
> > 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]]
> >
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2018-06-25 Thread Víctor Granda García
En esta respuesta: https://stackoverflow.com/a/35663834/2301674

tienes como hacerlo (mucho más sencillo que en la que enlazas tú) con
reshape2 o si prefieres la versión "tidy" con dplyr y tidyr (la que yo
recomiendo, pero solo porque me gusta más).

Espero que te sirva

On Mon, 25 Jun 2018 at 16:08 Fernando Reche Lorite via R-help-es <
r-help-es@r-project.org> wrote:

> Puedes probar con la función dummy del paquete dummies.
>
> Un saludo
> Fernando Reche Lorite
> Departamento de Matemáticas
> Universidad de Almería
>
> El 25 de junio de 2018, 15:55, Carlos J. Gil Bellosta <
> c...@datanalytics.com>
> escribió:
>
> > ¿No te vale model.matrix?
> >
> > El lun., 25 jun. 2018 a las 15:49, Juan Abasolo ()
> > escribió:
> >
> > > 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]]
> > >
> > > ___
> > > R-help-es mailing list
> > > R-help-es@r-project.org
> > > https://stat.ethz.ch/mailman/listinfo/r-help-es
> > >
> >
> > [[alternative HTML version deleted]]
> >
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
-- 
*Víctor Granda García*
Data Technician


v.gra...@creaf.uab.cat
Tel. +34 93 581 33 53


Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat*


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

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2018-06-25 Thread Marcelino de la Cruz Rot

# Hola
# Si te he entendido bien, lo que quieres hacer es lo mismo que hace R
# cuando genera la model.matrix de un modelo lineal,
# así que suponiendo que tienes esta data.frame:


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

df

# y sabiendo el nombre de las variables de tipo factor
# que quieres "binarizar", podrías hacer simplemente

variables<-c("c", "d", "e")

df2<-NULL
for(i in variables){
    mm<- model.matrix(lm((1:dim(df)[1])~get(i)-1, data=df))
    dimnames(mm)[[2]] <- levels(df[,i])
 df2<-cbind(df2,mm)}

 df2

# Saludos
# Marcelino



El 25/06/2018 a las 18:37, Jesús Para Fernández escribió:

Por cierto data.table tiene implementadas las funciones de reshape2 melt y 
dcast pero mucho m�s r�pidasen ejecuci�n

Obtener Outlook para Android


From: R-help-es  on behalf of V�ctor Granda Garc�a 

Sent: Monday, June 25, 2018 4:23:52 PM
To: Fernando Reche Lorite
Cc: r-help-es
Subject: Re: [R-es] Transformar muchas variables factor en variables binarias 
de acuerdo a niveles

En esta respuesta: https://stackoverflow.com/a/35663834/2301674

tienes como hacerlo (mucho m�s sencillo que en la que enlazas t�) con
reshape2 o si prefieres la versi�n "tidy" con dplyr y tidyr (la que yo
recomiendo, pero solo porque me gusta m�s).

Espero que te sirva

On Mon, 25 Jun 2018 at 16:08 Fernando Reche Lorite via R-help-es <
r-help-es@r-project.org> wrote:


Puedes probar con la funci�n dummy del paquete dummies.

Un saludo
Fernando Reche Lorite
Departamento de Matem�ticas
Universidad de Almer�a

El 25 de junio de 2018, 15:55, Carlos J. Gil Bellosta <
c...@datanalytics.com>
escribi�:


�No te vale model.matrix?

El lun., 25 jun. 2018 a las 15:49, Juan Abasolo ()
escribi�:


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]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


 [[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


 [[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


--
*V�ctor Granda Garc�a*
Data Technician


v.gra...@creaf.uab.cat
Tel. +34 93 581 33 53


Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat*


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

 [[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

[[alternative HTML version deleted]]



___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2018-06-25 Thread Carlos Ortega
Hola,

Aunque llego un poco tarde

   - El nuevo paquete de Max Kuhn, "recipes" tiene un transformador justo
   para esto, simplemente tienes que indicar las columnas en las que aplicar.
  - Viñeta:
  https://cloud.r-project.org/web/packages/recipes/vignettes/Dummies.html
   - Y acaba de salir otro paquete para esto justamente (fastDummies):
   - Viñeta:
  
https://cloud.r-project.org/web/packages/fastDummies/vignettes/making-dummy-variables.html


Saludos,
Carlos Ortega
www.qualityexcellence.es


El 25 de junio de 2018, 19:36, Marcelino de la Cruz Rot <
marcelino.delac...@urjc.es> escribió:

> # Hola
> # Si te he entendido bien, lo que quieres hacer es lo mismo que hace R
> # cuando genera la model.matrix de un modelo lineal,
> # así que suponiendo que tienes esta data.frame:
>
>
> df  <-data.frame(a = c(1,2,3), b = c(1,1,2), c =
> c("Rose","Pink","Red"), d = c("a","b","c"), e=c("red","blue", "green"))
>
> df
>
> # y sabiendo el nombre de las variables de tipo factor
> # que quieres "binarizar", podrías hacer simplemente
>
> variables<-c("c", "d", "e")
>
> df2<-NULL
> for(i in variables){
> mm<- model.matrix(lm((1:dim(df)[1])~get(i)-1, data=df))
> dimnames(mm)[[2]] <- levels(df[,i])
>  df2<-cbind(df2,mm)}
>
>  df2
>
> # Saludos
> # Marcelino
>
>
>
> El 25/06/2018 a las 18:37, Jesús Para Fernández escribió:
>
>> Por cierto data.table tiene implementadas las funciones de reshape2 melt
>> y dcast pero mucho m�s r�pidasen ejecuci�n
>>
>> Obtener Outlook para Android
>>
>> 
>> From: R-help-es  on behalf of V�ctor
>> Granda Garc�a 
>> Sent: Monday, June 25, 2018 4:23:52 PM
>> To: Fernando Reche Lorite
>> Cc: r-help-es
>> Subject: Re: [R-es] Transformar muchas variables factor en variables
>> binarias de acuerdo a niveles
>>
>> En esta respuesta: https://stackoverflow.com/a/35663834/2301674
>>
>> tienes como hacerlo (mucho m�s sencillo que en la que enlazas t�) con
>> reshape2 o si prefieres la versi�n "tidy" con dplyr y tidyr (la que yo
>> recomiendo, pero solo porque me gusta m�s).
>>
>> Espero que te sirva
>>
>> On Mon, 25 Jun 2018 at 16:08 Fernando Reche Lorite via R-help-es <
>> r-help-es@r-project.org> wrote:
>>
>> Puedes probar con la funci�n dummy del paquete dummies.
>>>
>>> Un saludo
>>> Fernando Reche Lorite
>>> Departamento de Matem�ticas
>>> Universidad de Almer�a
>>>
>>> El 25 de junio de 2018, 15:55, Carlos J. Gil Bellosta <
>>> c...@datanalytics.com>
>>> escribi�:
>>>
>>> �No te vale model.matrix?

 El lun., 25 jun. 2018 a las 15:49, Juan Abasolo (>>> >)
 escribi�:

 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]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>  [[alternative HTML version deleted]]

 ___
 R-help-es mailing list
 R-help-es@r-project.org
 https://stat.ethz.ch/mailman/listinfo/r-help-es

  [[alternative HTML version deleted]]
>>>
>>> ___
>>> R-help-es mailing list
>>> R-help-es@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>> --
>> *V�ctor Granda Garc�a*
>> Data Technician
>>
>>
>> v.gra...@creaf.uab.cat
>> Tel. +34 93 581 33 53
>>
>>
>> Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat*
>> 
>>
>> Abans d'imprimir aquest missatge electr�nic penseu en el medi ambient.
>>
>>  [[alternative HTML version deleted]]
>>
>> ___