Группировать данные в один столбец на основе условий в нескольких столбцах - dplyr - PullRequest
1 голос
/ 30 сентября 2019

Это продолжение другого вопроса, который я задал здесь . У меня есть данные, приведенные ниже для группы учащихся, в которой указаны задачи, поставленные перед каждым из них в разные дни их школьного семестра.

df <- data.frame(
    Student = c("A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B", "B", "B", "B", "C", "C", "C", "C", "C", "C", "C", "C"),
    `Day of School` = c("Day 1", "Day 1", "Day 1", "Day 2", "Day 2", "Day 2", "Field Trip", "Field Trip", "Field Trip", "Day 1", "Day 1", "Day 2", "Day 2", "Day 3", "Day 3", "Day 4", "Day 4", "Day 4", "Field Trip", "Field Trip", "Field Trip", "Field Trip", "Field Trip", "Day 5", "Day 5", "Day 5"),
    Task = c("Homework", "Classwork", "Homework", "Classwork", "Homework", "Classwork", "Poster", "Poster", "Poster", "Homework", "Classwork", "Homework", "Classwork", "Homework", "Classwork", "Poster", "Poster", "Poster", "Homework", "Classwork", "Homework", "Classwork", "Homework", "Classwork","Poster", "Poster"),
    Status = c("Completed", "Completed", "Completed", "Completed", "Completed", "Completed", "Completed", "Pending", "Not performed", "Completed", "Pending", "Completed", "Completed", "Pending", "Not performed", "Completed", "Pending", "Not performed", "Completed", "Completed", "Completed","Completed", "Completed", "Completed", "Completed", "Completed"), stringsAsFactors = FALSE)

Я хочу обобщить эту таблицу следующим образом:

enter image description here

Где Нет. количество завершенных учеников должно учитываться, если ученик имеет статус всех заданий на определенный день в школе как Завершено . Кто-нибудь может направить меня с этим?

1 Ответ

2 голосов
/ 30 сентября 2019

Одна dplyr возможность может быть:

df %>%
 group_by(Day.of.School, Student) %>%
 summarise(n = all(Status == "Completed")) %>%
 group_by(Day.of.School) %>%
 summarise(n = sum(n))

  Day.of.School     n
  <chr>         <int>
1 Day 1             1
2 Day 2             2
3 Day 3             0
4 Day 4             0
5 Day 5             1
6 Field Trip        1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...