I should note that if I have correctly understood your query, paste0 is vectorized, so you can create vectors of names e.g. by:
nmvec <- paste("a", 1:5) and then reference these names as needed. I should also add that you may do better using ?with and/or ?within to access the columns in a data frame/table for processing If I've misunderstood, of course just ignore the above. -- Bert On Wed, Jun 18, 2025 at 7:48 AM Bert Gunter <bgunter.4...@gmail.com> wrote: > If I understand correctly, see ?"[" : data tables inherit from data > frames, and data frame columns can be indexed by their names as character > strings. > > The following should give you the idea: > > d <- data.frame(a1 = 1:3, a2 = 4:6) > x <- vector("numeric",2) > for(i in 1:2){ > nm <- paste0("a",i) > x[i] <- sum(d[, nm]) > } > x > > > Please note: This is **absoutely** awful R code just meant to illustrate > the sort of thing that you want to do, not as a strict model to be followed. > > Also, as I don't use data tables, there may be better ways to do this > using data table's enhanced functionality directly. > > Cheers, > Bert > > On Wed, Jun 18, 2025 at 3:27 AM Naresh Gurbuxani < > naresh_gurbux...@hotmail.com> wrote: > >> 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. >> > [[alternative HTML version deleted]] ______________________________________________ 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.