получить уникальные значения с отличной функцией в dplyr - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть данные как показано ниже

library(tibble)
df <- tibble(ID = c(100000L, 100000L, 100000L, 100000L, 100001L, 100001L, 100001L, 100001L, 100002L, 100002L, 100002L, 100002L, 100003L, 100003L, 100003L), subject_result2 = c("OTHERPassedTerm1", "OTHERPassedTerm1", "OTHERPassedTerm1", "MATHPassedTerm1", "OTHERPassedTerm1", "OTHERPassedTerm1", "OTHERPassedTerm1", "OTHERFailedTerm1", "OTHERPassedTerm1", "OTHERPassedTerm1", "MATHPassedTerm1", "MATHFailedTerm1", "OTHERPassedTerm1", "MATHPassedTerm1", "OTHERPassedTerm1"))
# A tibble: 15 x 2
       ID subject_result2 
    <int> <chr>           
 1 100000 OTHERPassedTerm1
 2 100000 OTHERPassedTerm1
 3 100000 OTHERPassedTerm1
 4 100000 MATHPassedTerm1 
 5 100001 OTHERPassedTerm1
 6 100001 OTHERPassedTerm1
 7 100001 OTHERPassedTerm1
 8 100001 OTHERFailedTerm1
 9 100002 OTHERPassedTerm1
10 100002 OTHERPassedTerm1
11 100002 MATHPassedTerm1 
12 100002 MATHFailedTerm1 
13 100003 OTHERPassedTerm1
14 100003 MATHPassedTerm1 
15 100003 OTHERPassedTerm1

Я хочу получить уникальный subject_result2 на основе каждого ID.Примерно так, как показано ниже, но этот код не работает

library(dplyr)
df %>%
 group_by(ID) %>%
 distinct(subject_result2)

Не могли бы вы исправить мою проблему?спасибо

желаемый результат:

#   <int> <chr>           
#1 100000 OTHERPassedTerm1
#2 100000 MATHPassedTerm1 
#3 100001 OTHERPassedTerm1
#4 100001 OTHERFailedTerm1
#5 100002 OTHERPassedTerm1
#6 100002 MATHPassedTerm1 
#7 100002 MATHFailedTerm1 
#8 100003 OTHERPassedTerm1
#9 100003 MATHPassedTerm1 

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Одна вещь, которую вы могли бы сделать, это подсчитать количество экземпляров комбинаций ID и subject_result2.

new_df <- df %>%
          group_by(ID, subject_result2) %>%
          summarise(id = n()) %>%distinct() %>%
          select(-id)


new_df
0 голосов
/ 18 декабря 2018

Вам нужно всего лишь сделать

distinct(df)
# A tibble: 9 x 2
#      ID subject_result2 
#   <int> <chr>           
#1 100000 OTHERPassedTerm1
#2 100000 MATHPassedTerm1 
#3 100001 OTHERPassedTerm1
#4 100001 OTHERFailedTerm1
#5 100002 OTHERPassedTerm1
#6 100002 MATHPassedTerm1 
#7 100002 MATHFailedTerm1 
#8 100003 OTHERPassedTerm1
#9 100003 MATHPassedTerm1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...