patricio fuenmayor
2023-Jan-19 13:44 UTC
[R-es] función dinámica con lapply en un data.table
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 en 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 en 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 en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]