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