我有一个类似于以下的data.frame:
df <- data.frame(population = c("AA","AA","AA","BB","BB","CC","CC","CC"),
individual = c("A1","A2","A3","B1","B2","C1","C2","C3"),
Haplotype1 = rep(1:4,2),
Haplotype2 = rep(5:8,2))
> df
population individual Haplotype1 Haplotype2
1 AA A1 1 5
2 AA A2 2 6
3 AA A3 3 7
4 BB B1 4 8
5 BB B2 1 5
6 CC C1 2 6
7 CC C2 3 7
8 CC C3 4 8
我想创建一个新数据集,其中从数据集中省略任何由少于指定数量的个体组成的人口。例如,我想仅重新分析具有三个或更多个体的人群的数据。以下是我想要的数据集:
> df <- df[!df$population=="BB",]
> df
population individual Haplotype1 Haplotype2
1 AA A1 1 5
2 AA A2 2 6
3 AA A3 3 7
6 CC C1 2 6
7 CC C2 3 7
8 CC C3 4 8
但是,我有 400 个种群,大小从 5 到 155 不等,手动按名称挑选种群是不可行的。我想写一个函数,我本质上说“给我一个包含 X 个或更多个体的所有人口的数据集,并删除那些少于 X 的人。” 任何帮助或反馈表示赞赏。