Мой текущий проект содержит данные, структура которых имеет вид:
my_df <- tibble(
zn = c("hm","hm", "hm", "h60","h60","h60", "h85","h85","h85"),
nm = c("c", "cA", "cB", "c","cA", "cB", "c","cA", "cB"),
val = c(60, 40, 20, 250, 150, 100, 400, 250, 150),
znt = c(100, 100, 100, 300, 300, 300, 500, 500, 500),
)
my_df
# A tibble: 9 x 4
zn nm val znt
<chr> <chr> <dbl> <dbl>
1 hm c 60 100
2 hm cA 40 100
3 hm cB 20 100
4 h60 c 250 300
5 h60 cA 150 300
6 h60 cB 100 300
7 h85 c 400 500
8 h85 cA 250 500
9 h85 cB 150 500
И я хотел бы добавить новую переменную c0
, значение которой определено c0 = znt - c
для каждого zn
. Конечный результат будет выглядеть так:
# A tibble: 12 x 4
zn nm val znt
<chr> <chr> <dbl> <dbl>
1 hm c0 40 100
2 hm c 60 100
3 hm cA 40 100
4 hm cB 20 100
5 h60 c0 50 300
6 h60 c 250 300
7 h60 cA 150 300
8 h60 cB 100 300
9 h85 c0 100 500
10 h85 c 400 500
11 h85 cA 250 500
12 h85 cB 150 500
У меня есть идея, как это сделать, но это кажется очень запутанным, и я надеюсь, что есть лучший способ. Если бы это можно было сделать, используя что-то из tidyverse
, это тоже было бы здорово.