Предположим, у меня есть следующий фрейм данных:
year subject grade study_time
1 1 a 30 20
2 2 a 60 60
3 1 b 30 10
4 2 b 90 100
Я бы хотел разделить оценку и время обучения по их первой записи по каждому предмету.Я делаю следующее:
df %>%
group_by(subject) %>%
mutate(RN = row_number()) %>%
mutate(study_time = study_time/study_time[RN ==1],
grade = grade/grade[RN==1]) %>%
select(-RN)
Я бы получил следующий вывод
year subject grade study_time
1 1 a 1 1
2 2 a 2 3
3 1 b 1 1
4 2 b 3 10
Это довольно легко сделать, когда я знаю, что такое имена переменных.Тем не менее, я пытаюсь написать обобщающую функцию, которая могла бы действовать на любой data.frame / data.table / tibble, где я могу не знать имя переменных, которые мне нужно изменить, я буду знать толькоимена переменных не должны изменяться.Я пытаюсь сделать это с помощью tidyverse / data.table и не могу заставить что-либо работать.
Любая помощь будет принята с благодарностью.