使用dplyr中的distinct函数获取唯一值

使用dplyr中的distinct函数获取唯一值,r,dplyr,R,Dplyr,我有如下数据 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", "OTHERPa

我有如下数据

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"))
你能解决我的问题吗?谢谢

预期结果:

#
#1 100000其他已通过的条款1
#2 100000个MATHPassedTerm1
#3 100001其他通行条款1
#4 100001其他故障术语1
#5 100002其他已通过的条款1
#6 100002 MATHPassedTerm1
#7 100002数学故障术语1
#8 100003其他通行条款1
#9 100003 MATHPassedTerm1

您只需要

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 
distinct(df)
#一个tibble:9x2
#ID主题\u结果2
#               
#1 100000其他已通过的条款1
#2 100000个MATHPassedTerm1
#3 100001其他通行条款1
#4 100001其他故障术语1
#5 100002其他已通过的条款1
#6 100002 MATHPassedTerm1
#7 100002数学故障术语1
#8 100003其他通行条款1
#9 100003 MATHPassedTerm1

您可以做的一件事是计算ID和subject\u result2组合的实例

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


new_df
new_df%
分组依据(ID,受试者结果2)%>%
摘要(id=n())%%>%distinct()%%>%
选择(-id)
新德里

我觉得您的代码运行良好。与上面一样,您的预期输出是什么?您所说的“此代码不工作”是什么意思?你有什么错误?如果问题是其他列也消失了,那么您需要指定我们需要如何决定保留哪些行。谢谢,但在我的实际数据中,我有更多的列,因此仅使用distinct不会出现这种情况help@Cina然后请给出一个模仿你的问题的例子。