通过变化计数汇总数据? 数据

我正在尝试汇总我的数据,以说明老师安排的课程数量。

基本上我的数据如下:

Id | Subject
123| algebra
123| geometry
123| algebra II
456| calc
456| calc
789| geometry
789| geometry
789| calc

and I need it to look like this:

Id | Subject count
123| 3
456| 1
789| 2

I have no idea where to start because I don't want it to simply count the number of courses they teach,I want the DIFFERENT courses. Please help!

jiaozhongling 回答:通过变化计数汇总数据? 数据

我们可以按'Id'分组,并在n_distinct中用summarise获得不同的'Subject'计数

library(dplyr)
df1 %>%
  group_by(Id) %>%
  summarise(Subject_Count = n_distinct(Subject))
# A tibble: 3 x 2
#     Id Subject_Count
#  <int>         <int>
#1   123             3
#2   456             1
#3   789             2

或者使用data.table转换为{Id}分组的data.tablesetDT(df1)),并用uniqueN来获得不同的计数

library(data.table)
setDT(df1)[,.(Subject_Count = uniqueN(Subject)),by = Id]

数据

df1 <- structure(list(Id = c(123L,123L,456L,789L,789L),Subject = c("algebra","geometry","algebra II","calc","calc")),class = "data.frame",row.names = c(NA,-8L))
本文链接:https://www.f2er.com/2945400.html

大家都在问