如何根据 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
函数,但我不知道如何根据我的两个专栏来做。
谢谢
您需要将 tr
和 tri
组合在一起,然后使用 summarize
和 n_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
我有这样一个数据框:
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
函数,但我不知道如何根据我的两个专栏来做。
谢谢
您需要将 tr
和 tri
组合在一起,然后使用 summarize
和 n_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