My data.table has many columns in groups of four. On each group, I want to perform the same set of calculations.
mydt <- data.table( date = seq(as.IDate("2025-06-01"), by = 1, length.out = 10), ABC1_price = runif(10, 100, 120), ABC1_volume = runif(10, 200, 300), ABC2_price = runif(10, 100, 120), ABC2_volume = runif(10, 200, 300), DEF1_price = runif(10, 100, 120), DEF1_volume = runif(10, 200, 300), DEF2_price = runif(10, 100, 120), DEF2_volume = runif(10, 200, 300)) mydt[ , let(ABC_price = fifelse(ABC1_volume < ABC2_volume, ABC2_price, ABC1_price), DEF_price = fifelse(DEF1_volume < DEF2_volume, DEF2_price, DEF1_price)) ] # Now use mydt[, list(ABC_price, DEF_price)] for subsequent calculations With many columns, above method is error-prone and tedious. Is it possible to do something like: myvars <- c("ABC", "DEF") for (avar in myvars) { # code for above calculations } Thanks, Naresh ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.