我在R中有一个数据框架,它是由行中的取样树和列中的不同地衣种类组织起来的。每一列中列出了每棵树上每种地衣种类的计数数据。
| 树ID|地衣_A|地衣_B|苔藓_C|
| --------------|--------------|--------------|--------------|
| 树1|1|第二章|三|
| Tree2|第二章|五|七|
我想对地衣进行分类,并根据类别计算每棵树的数量。理想情况下,这些类别可以从另一个数据框架导入,如下图所示。某些地衣将共享同一个类别。
| 地衣|灵敏度|
| --------------|--------------|
| 地衣_A|低|
| 地衣_B|低|
| 苔藓_C|中等|
组合这些以获得类别的总和如下所示:
| 树ID|低|中等|
| --------------|--------------|--------------|
| 树1|三|三|
| Tree2|七|七|
事实上,我有大约40种不同的地衣,两个敏感性类别和多个树木数据集,所以我想找到一个解决方案,这意味着我不需要手动做每件事。
我不知道如何设置代码,虽然我有一种感觉,这应该是可能的,也许与一个循环和/或dplyr突变?
3条答案
按热度按时间c9qzyr3d1#
使用
dplyr
和tidyr
:资料
cedebl8k2#
只需很小的努力,您就可以将
sapply
的unique
灵敏度转换为子集dat
,并获得rowSums
,我们将cbind
转换为第一列。h43kikqp3#
使用
data.table