根据所有可能的组计算仅出现在单个组中的唯一字符串
Count unique strings that only occur in a single group based on all possible groups
我有以下df
a = data.frame(PA = c("A", "A", "A", "B", "B"), Family = c("aa", "ab", "ac", "aa", "ad"))
我想要获得的是基于所有可能的 PA 的每个 PA(A 或 B)中唯一 'Family' 字符串(aa、ab、ac、ad)的计数。例如,aa 是 A 和 B 的唯一字符串,但由于它出现在两个 PA 中,所以我不想要它。另一方面,ab 和 ac 对于 PA A 是唯一的,并且只出现在 PA A 中:这就是我想要的。
使用 dplyr
我正在做类似的事情:
df >%> group_by(PA) %>%
summarise(count_family = n_distinct(Family))
但这只是每个 PA 中的 returns 个唯一术语 — 我希望在基于所有可能的 PA 的唯一 PA 中出现独特的家族
这是一个 tidyverse
方法。
首先删除所有重复的 Family
,然后 group_by(PA)
并计数。
library(tidyverse)
a %>% group_by(Family) %>%
filter(n() == 1) %>%
group_by(PA) %>%
summarize(count_family = n())
输出
# A tibble: 2 x 2
PA count_family
<chr> <int>
1 A 2
2 B 1
summarise()
之前的输出
# A tibble: 3 x 2
# Groups: Family [3]
PA Family
<chr> <chr>
1 A ab
2 A ac
3 B ad
我有以下df
a = data.frame(PA = c("A", "A", "A", "B", "B"), Family = c("aa", "ab", "ac", "aa", "ad"))
我想要获得的是基于所有可能的 PA 的每个 PA(A 或 B)中唯一 'Family' 字符串(aa、ab、ac、ad)的计数。例如,aa 是 A 和 B 的唯一字符串,但由于它出现在两个 PA 中,所以我不想要它。另一方面,ab 和 ac 对于 PA A 是唯一的,并且只出现在 PA A 中:这就是我想要的。
使用 dplyr
我正在做类似的事情:
df >%> group_by(PA) %>%
summarise(count_family = n_distinct(Family))
但这只是每个 PA 中的 returns 个唯一术语 — 我希望在基于所有可能的 PA 的唯一 PA 中出现独特的家族
这是一个 tidyverse
方法。
首先删除所有重复的 Family
,然后 group_by(PA)
并计数。
library(tidyverse)
a %>% group_by(Family) %>%
filter(n() == 1) %>%
group_by(PA) %>%
summarize(count_family = n())
输出
# A tibble: 2 x 2
PA count_family
<chr> <int>
1 A 2
2 B 1
summarise()
之前的输出
# A tibble: 3 x 2
# Groups: Family [3]
PA Family
<chr> <chr>
1 A ab
2 A ac
3 B ad