[R] From strings to column names
Naresh Gurbuxani
n@re@h_gurbux@n| @end|ng |rom hotm@||@com
Sun Jun 22 17:54:02 CEST 2025
Ivan,
This is an elegant solution.
Thanks,
Naresh
> On Jun 18, 2025, at 4:00 PM, Ivan Krylov <ikrylov using disroot.org> wrote:
>
> В Wed, 18 Jun 2025 10:27:37 +0000
> Naresh Gurbuxani <naresh_gurbuxani using hotmail.com> пишет:
>
>> 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)) ]
>
> Thank you for the reproducible example! How about the following?
>
> for (var in c("ABC", "DEF")) mydt[,
> price := fifelse(volume1 < volume2, price2, price1),
> env = list(
> price = paste0(var, '_price'),
> price1 = paste0(var, '1_price'),
> price2 = paste0(var, '2_price'),
> volume1 = paste0(var, '1_volume'),
> volume2 = paste0(var, '2_volume')
> )
> ]
>
> --
> Best regards,
> Ivan
More information about the R-help
mailing list