我正在试图写一个代码来计算昆虫家族在每个位置出现的次数。目前,在不手动计数的情况下,我无法找到这样的方法,对于我将要使用的数据集大小来说,这是不可能的。现在我有一个:
Location Family
ORCHARD Anthicidae
ORCHARD Anthicidae
ROCKY Trogossitidae
ORCHARD Meloidae
ROCKY Elateridae
ROCKY Cleridae
ORCHARD Silphidae
FARM Meloidae
ROCKY Dermestidae
ORCHARD Trogossitidae
FARM Elateridae
FARM Elateridae
ORCHARD Anthicidae这就是我想要的样子:
Family Orchard Rocky Farm
Anthicidae 2 0 0
Trogossitidae 0 1 0
Meloidae 1 0 0
Elateridae 0 1 2
...有没有人有更好的(非人工的)方式去做这件事?提前谢谢你!
发布于 2022-07-26 19:57:43
更新:非常好的提示@onyambu (非常感谢):我们可以省略count
library(tidyr)
pivot_wider(df, Family, names_from = Location, values_from = Location, values_fn = length, values_fill = 0)第一个答案:
在使用count之后,通过分组和总结,我们可以使用pivot_wider
library(dplyr)
library(tidyr)
df %>%
count(Family, Location) %>%
pivot_wider(names_from = Location, values_from= n, values_fill = 0)Family ORCHARD ROCKY FARM
<chr> <int> <int> <int>
1 Anthicidae 3 0 0
2 Cleridae 0 1 0
3 Dermestidae 0 1 0
4 Elateridae 0 1 2
5 Meloidae 1 0 1
6 Silphidae 1 0 0
7 Trogossitidae 1 1 0https://stackoverflow.com/questions/73128986
复制相似问题