Любой игрок в диапазоне от 1 до 8 называется «Вперед», а между 9–15 - «Назад», но эти игроки могут быть заменены на другого с номером больше 15, и этот новый игрок должен сохранять тот же статус («Вперед» или «Назад»).,Итак, как я могу присвоить этот статус кодификации по ссылке?Пример
data.frame(Player_substituted=c(7, 15, 2, 1, 8, 5, 22, 18),
Player_substitute=c(22, 18, 16, 17, 20, 19, 21, 23)
)
#Table
Player_substituted Player_substitute
7 22
15 18
2 16
1 17
8 20
5 19
22 21
18 23
И идея состоит в том, чтобы иметь вывод наподобие:
Player_substituted Player_substitute status_P_sustituted
7 22 Forward
15 18 Backward
2 16 Forward
1 17 Forward
8 20 Forward
5 19 Forward
22 21 Forward
18 23 Backward
Это означает, например, что игрок 7 - «Вперед» и его заменил игрок 22так что игрок 22 тоже «вперед».Но игрок 15 «Назад», и он был заменен игроком 18, поэтому игрок 18 также «Назад»
. Один из вариантов - использовать функции which () для определения индекса (это только черновик)
#To find index of user with number higher than 15
Index<-which(!Player_substituted%in%1:15)
#To find the user susituted
Index_2<-which(Player_substitute==Player_substituted[Index])
....
Конечно, это не самый эффективный способ.Кроме того, мне нужно сделать эту группировку по другим переменным.Любое предложение?
Большое спасибо!