[R-es] función dinámica con lapply en un data.table

patricio fuenmayor p@tr|c|o@|uenm@yor @end|ng |rom gm@||@com
Jue Ene 19 14:44:37 CET 2023


Gracias Carlos
te cuento que el factor debe multiplicar a la columna
en lo que envías ... está multiplicando a cada fila consecutivamente
le metí un poco de cabeza y logré hacerlo con furrr::future_imap

dat1[,c(col_mdf):=furrr::future_imap(.SD,~as.integer(.x)/cfg3[hmlg_col_nm==.y,fct_vl]),.SDcols=col_mdf]

donde cfg3 es ta tabla de parámetros que arroja el factor cuando el nombre
de la variable coincide con el .y del barrido

gracias por tu apoyo !!!









El jue, 19 ene 2023 a la(s) 02:36, Carlos Ortega (cof using qualityexcellence.es)
escribió:

> Hola,
>
> Sí, puede ser así:
>
> #------------------------
> library(data.table)
>
> # Convertir iris en un data.table
> iris_dt <- as.data.table(iris)
> iris_dt
>
> # Crear vectores con nombres de columnas y factores
> cols_to_mult <- c("Sepal.Length", "Sepal.Width", "Petal.Length")
> factors <- c(2,3,4)
>
> iris_dt[, (cols_to_mult) := lapply(.SD, function(x) x*factors), .SDcols =
> cols_to_mult]
>
> #---------------------------
>
> Gracias,
> Carlos Ortega
> www.qualityexcellence.es
>
> El jue, 19 ene 2023 a las 4:20, patricio fuenmayor (<
> patricio.fuenmayor using gmail.com>) escribió:
>
>> Hola a todos, espero que se encuentren bien.!!!
>>
>> Ando buscando la forma "elegante" de hacer esto.
>>
>> Tengo un data.table al que a ciertas columnas debo mullicarlas por un
>> factor, pero ese factor es distinto para cada columna y lo tengo en
>> un data.table a parte de parámetros
>>
>> tengo pensado esto pero no logro implementarlo:
>>
>> col_mdf <- c("A","B") # lista de columnas a multiplicar por un factor
>>
>> dt[,c(col_mdf):=lapply(.SD,\(x,y) x*y),.SDcols=col_mdf]
>>
>> lo que no logro es que "y" sea el factor que debe ser correspondiente a
>> "x"
>> en la tabla de parámetros
>>
>> Gracias por si se les ocurre una manera
>>
>> PD: ya lo hice con un bucle for, pero me gustaria hacerlo con la familia
>> apply y/o map
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>

	[[alternative HTML version deleted]]



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