如何根据 R 中的其他两列来计算一列?

How to count one column based on two other columns in R?

我有这样一个数据框:

ID  tr  tri
a   A   11
a   A   11
a   A   11
a   A   11
a   A   12
a   A   12
a   A   12
a   A   13
a   A   13
a   A   13
a   A   13
f   A   11
f   A   11
f   A   12
f   A   12
f   A   12
f   A   13
f   A   13
f   A   14
f   A   14
f   A   14
f   A   14
j   B   11
j   B   11
j   B   12
j   B   12
j   B   12
j   B   12
j   B   13
j   B   14
j   B   14
j   B   14
j   B   14
p   B   11
p   B   11
p   B   11
p   B   11
p   B   11
p   B   12
p   B   12
p   B   13
p   B   13
p   B   13
w   B   11
w   B   11
w   B   12
w   B   12
w   B   12
w   B   12
w   B   12
w   B   13
w   B   13
w   B   14

我需要知道每个 tr 在每个 tri 中有多少个唯一 ID ],像这样:

tr  tri count
A   11  2
A   12  2
A   13  2
A   14  1
B   11  3
B   12  3
B   13  3
B   14  2

所以我的问题是如何根据其他两列计算一列?我想我需要 summarize 函数,但我不知道如何根据我的两个专栏来做。 谢谢

您需要将 trtri 组合在一起,然后使用 summarizen_distinct 来计算唯一的 ID.

library(dplyr)

df %>% group_by(tr, tri) %>% summarize(count = n_distinct(ID), .groups = "drop")

# A tibble: 8 × 3
  tr      tri count
  <chr> <int> <int>
1 A        11     2
2 A        12     2
3 A        13     2
4 A        14     1
5 B        11     3
6 B        12     3
7 B        13     3
8 B        14     2