Я работал над этой проблемой, но не смог ее решить.Я знаю, что ответ может быть очень простым, но я не мог решить его и не мог найти, как решить его из других подобных вопросов.
У меня есть следующий data.frame:
region group probs1 probs2 probs3 probs4 weights
1 2 0.2 0.3 0.4 0.1 NA
2 4 0.3 0.4 0.15 0.15 NA
3 3 0.4 0.1 0.3 0.2 NA
4 1 0.7 0.1 0.1 0.1 NA
5 1 0.2 0.3 0.4 0.1 NA
6 2 0.6 0.1 0.1 0.2 NA
7 3 0.7 0.1 0.1 0.1 NA
8 4 0.3 0.2 0.1 0.4 NA
9 3 0.2 0.1 0.1 0.6 NA
10 1 0.1 0.2 0.1 0.6 NA
Что я собираюсь сделать, это создать новый столбец в data.frame под названием «weights», который рассчитывается так, как если быгруппа == 1, тогда вес = = probs1 / probs1.Если группа == 2, то веса = probs1 / probs2.Если группа == 3, то веса = probs1 / probs3.Если группа == 4, то веса = probs1 / probs4.
Я использовал разные типы кодов, например, ifelse
, if....else
, dplyr
, но мне не удалось.Фактически, коды могут создавать только веса для весов = probs1 / probs1 и применять их для всех регионов, независимо от группы.
Может кто-нибудь, пожалуйста, помогите мне решить это?Спасибо