Поскольку работать с переменными намного проще, чем со строками, вы можете преобразовать свои данные из длинного в широкий формат с помощью пакета tidyr (часть tidyverse), выполнить преобразования, а затем вернуться к длинному формату.снова с тидыром:
library(tidyverse)
dat <- tibble(
id = c(1, 2, 5, 7, 9, 10),
value = c(10, 25, 30, 15, 30, 50)
)
dat %>%
spread(id, value) %>%
mutate(`7 + 10` = 0.2 * `7` + 0.8 * `10`) %>%
select(- `7`, - `10`) %>%
gather("id", "value", everything())
id value
<chr> <dbl>
1 1 10
2 2 25
3 5 30
4 9 30
5 7 + 10 43