#r #dplyr #tidyverse
Вопрос:
У нас есть фрейм данных, который выглядит следующим образом :
Group1 Group2 Group3 Group4 Group5 Group6
1 0 1 0 0 0
0 1 0 1 0 0
0 0 1 0 1 0
1 0 1 0 0 0
1 0 0 0 1 0
У нас есть двоичный расчет с соответствующими группами, где Group1 и 2, вычитаемые из группы 3 и 4, дают группу 5 и 6
Мы получаем 0 в группах 5 и 6, и мы хотим обновить их с помощью Групп1 и 2
У нас есть более 100 строк с аналогичными условиями, и нам нужен вывод, как показано ниже:
Group1 Group2 Group3 Group4 Group5 Group6
1 0 1 0 1 0
0 1 0 1 0 1
0 0 1 0 1 0
1 0 1 0 1 0
1 0 0 0 1 0
Комментарии:
1. Вы просто хотите
df$Group5 <- df$Group1
и то же самое дляGroup6
? Какова логика (если таковая имеется), которую вы пытаетесь здесь реализовать?2. @RonakShah Извини, чувак, это моя ошибка, которую я обновил, теперь, пожалуйста, разберись в этом
3. Я обновляю свой ответ после того, как вы добавили условие.
4. Я все еще этого не понимаю. Группа 3 — Группа 1 дает -1 для последней строки, но у вас есть 1 в столбце group5.
Ответ №1:
Редактируйте в соответствии с вашими условиями
data %>%
mutate(Group5 = abs(Group1 - Group3),
Group6 = abs(Group2 - Group4)) %>%
mutate(Group5 = Group5 Group1 * as.integer(!(as.logical(Group5) | as.logical(Group6))),
Group6 = Group6 Group2 * as.integer(!(as.logical(Group5) | as.logical(Group6)))
)
Обновляйте только тогда, когда группы 5 и 6 равны 0. Если нет, пожалуйста, дайте мне знать