Hola, yo quiero construir un data.table donde una columna (Parametros) son caracteres y otra el resultado de la función information.gain, que devuelve un data.frame. El código que he usado es este, pero me da error PesosParam <- data.table(,.(Parametros, Peso:information.gain(In.hospital_death~., ParamCol))) Es posible hacer lo que digo? o debo hacer una transformación del data.frame a data.table explícitamente. Esto también lo he probado con el código: # Conversión de data.frame a data.table setattr(PesosParam, "class", c("data.table", "data.frame")) data.table:::settruelength(PesosParam, 0L) invisible(alloc.col(PesosParam)) pero no encuentra settruelength Gracias Un saludo MªLuz Morales [[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2015-Jun-08 13:17 UTC
[R-es] columna de un data.table puede ser data.frame?
Hola, ¿qué tal? data.table funciona con corchetes, no paréntesis. ¿Has leído la viñeta/tutorial? Un saludo, Carlos J. Gil Bellosta http://www.datanaytics.com El día 8 de junio de 2015, 15:14, MªLuz Morales <mlzmrls en gmail.com> escribió:> Hola, > > yo quiero construir un data.table donde una columna (Parametros) son > caracteres y otra el resultado de la función information.gain, que devuelve > un data.frame. El código que he usado es este, pero me da error > > PesosParam <- data.table(,.(Parametros, Peso:> information.gain(In.hospital_death~., ParamCol))) > > Es posible hacer lo que digo? o debo hacer una transformación del > data.frame a data.table explícitamente. Esto también lo he probado con el > código: > > # Conversión de data.frame a data.table > setattr(PesosParam, "class", c("data.table", "data.frame")) > data.table:::settruelength(PesosParam, 0L) > invisible(alloc.col(PesosParam)) > > pero no encuentra settruelength > > Gracias > Un saludo > MªLuz Morales > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, si, se que para trabajar con data.table se usan [] pero en esta línea estoy creando el data.table, es decir, data.table es la función a la que llamo y PesosParam es el data.table que creo Un saludo MªLuz Morales El 8 de junio de 2015, 15:17, Carlos J. Gil Bellosta <cgb en datanalytics.com> escribió:> Hola, ¿qué tal? > > data.table funciona con corchetes, no paréntesis. ¿Has leído la > viñeta/tutorial? > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanaytics.com > > El día 8 de junio de 2015, 15:14, MªLuz Morales <mlzmrls en gmail.com> > escribió: > > Hola, > > > > yo quiero construir un data.table donde una columna (Parametros) son > > caracteres y otra el resultado de la función information.gain, que > devuelve > > un data.frame. El código que he usado es este, pero me da error > > > > PesosParam <- data.table(,.(Parametros, Peso:> > information.gain(In.hospital_death~., ParamCol))) > > > > Es posible hacer lo que digo? o debo hacer una transformación del > > data.frame a data.table explícitamente. Esto también lo he probado con el > > código: > > > > # Conversión de data.frame a data.table > > setattr(PesosParam, "class", c("data.table", "data.frame")) > > data.table:::settruelength(PesosParam, 0L) > > invisible(alloc.col(PesosParam)) > > > > pero no encuentra settruelength > > > > Gracias > > Un saludo > > MªLuz Morales > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola Mª Luz, Cuando vayas a crear el data.table lo haces igual que un data.frame. Fíjate en el ejemplo de la ayuda de data.table(): DF = data.frame(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9) DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9) Cuando creas el data.table, la opción que has utilizado de ".()" no aplica. Esto aplica una vez ya tienes el data.table y quierez crear una nueva variable. Entonces el código para crear el data.table sería algo parecido a esto: PesosParam <- data.table(Parametros, Pesoinformation.gain(In.hospital_death~., ParamCol)) Aunque lo anterior si te da error, es porque tienes que decir explícitamente de dónde salen: "Parametros", "In.hospital_death" y "ParamCol". Por eso a lo mejor tienes que definir estas variables antes: Parametros <- my_data_table$Parametros ?Y para information.gain(), entiendo que además de las variables tendrás que indicar el data.frame (el "data") donde están esas variables...? Saludos, Carlos Ortega www.qualityexcellence.es El 8 de junio de 2015, 15:14, MªLuz Morales <mlzmrls en gmail.com> escribió:> Hola, > > yo quiero construir un data.table donde una columna (Parametros) son > caracteres y otra el resultado de la función information.gain, que devuelve > un data.frame. El código que he usado es este, pero me da error > > PesosParam <- data.table(,.(Parametros, Peso:> information.gain(In.hospital_death~., ParamCol))) > > Es posible hacer lo que digo? o debo hacer una transformación del > data.frame a data.table explícitamente. Esto también lo he probado con el > código: > > # Conversión de data.frame a data.table > setattr(PesosParam, "class", c("data.table", "data.frame")) > data.table:::settruelength(PesosParam, 0L) > invisible(alloc.col(PesosParam)) > > pero no encuentra settruelength > > Gracias > Un saludo > MªLuz Morales > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Solucionado Efectivamente era un problema de notación. Esto funciona PesosParam <- data.table(Param = Parametros, Peso information.gain(In.hospital_death~., ParamCol)) Nota: Parametros es un vector de caracteres Gracias Un saludo MªLuz El 8 de junio de 2015, 16:08, Carlos Ortega <cof en qualityexcellence.es> escribió:> Hola Mª Luz, > > Cuando vayas a crear el data.table lo haces igual que un data.frame. > Fíjate en el ejemplo de la ayuda de data.table(): > > DF = data.frame(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9) > DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9) > > Cuando creas el data.table, la opción que has utilizado de ".()" no aplica. > Esto aplica una vez ya tienes el data.table y quierez crear una nueva > variable. > > Entonces el código para crear el data.table sería algo parecido a esto: > > PesosParam <- data.table(Parametros, Peso> information.gain(In.hospital_death~., ParamCol)) > > Aunque lo anterior si te da error, es porque tienes que decir > explícitamente de dónde salen: "Parametros", "In.hospital_death" y > "ParamCol". Por eso a lo mejor tienes que definir estas variables antes: > > Parametros <- my_data_table$Parametros > > ?Y para information.gain(), entiendo que además de las variables tendrás > que indicar el data.frame (el "data") donde están esas variables...? > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 8 de junio de 2015, 15:14, MªLuz Morales <mlzmrls en gmail.com> escribió: > >> Hola, >> >> yo quiero construir un data.table donde una columna (Parametros) son >> caracteres y otra el resultado de la función information.gain, que >> devuelve >> un data.frame. El código que he usado es este, pero me da error >> >> PesosParam <- data.table(,.(Parametros, Peso:>> information.gain(In.hospital_death~., ParamCol))) >> >> Es posible hacer lo que digo? o debo hacer una transformación del >> data.frame a data.table explícitamente. Esto también lo he probado con el >> código: >> >> # Conversión de data.frame a data.table >> setattr(PesosParam, "class", c("data.table", "data.frame")) >> data.table:::settruelength(PesosParam, 0L) >> invisible(alloc.col(PesosParam)) >> >> pero no encuentra settruelength >> >> Gracias >> Un saludo >> MªLuz Morales >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]