我在R中有一个数据框,它是由行中采样的树木和列中不同的地衣物种组成的.每棵树的每个地衣种类的计数数据列在每一栏中.

Tree_ID Lichen_A Lichen_B Lichen_C
Tree1 1 2 3
Tree2 2 5 7

我想将地衣分类,并按类别计算每棵树所见的数量.理想情况下,可以从另一个数据框中导入类别,该数据框可能如下所示.某些地衣将属于同一类别.

Lichen Sensitivity
Lichen_A Low
Lichen_B Low
Lichen_C Medium

将这些组合在一起以获得类别的总和如下所示:

Tree_ID Low Medium
Tree1 3 3
Tree2 7 7

事实上,我有大约40种不同的地衣,两个敏感类别和多个树木数据集,所以我想找到一个解决方案,这意味着我不需要手动做所有的事情.

我不确定如何为此设置代码,但我有一种感觉,它应该是可能的,也许是循环和/或dplyrMutations ?

推荐答案

dplyrtidyr:

library(dplyr)
library(tidyr)
df1 %>% 
  pivot_longer(unique(df2$Lichen)) %>% 
  inner_join(df2, by = c("name" = "Lichen")) %>% 
  group_by(Tree_ID, Sensitivity) %>% 
  summarise(value = sum(value)) %>% 
  pivot_wider(names_from = "Sensitivity")

  Tree_ID   Low Medium
1 Tree1       3      3
2 Tree2       7      7

数据

df1 <- read.table(header = T,text = "Tree_ID    Lichen_A    Lichen_B    Lichen_C
Tree1   1   2   3
Tree2   2   5   7")


df2 <- read.table(header = T,text= "
Lichen  Sensitivity
Lichen_A    Low
Lichen_B    Low
Lichen_C    Medium")

R相关问答推荐

R中具有gggplot 2的Likert图,具有不同的排名水平和显示百分比

gt()从gt为相同内容的单元格 colored颜色 不同?

在R中,如何在每个堆叠的条上放置误差条,特别是当使用facet_grid时?

如何得到R中唯一的组合群?

当我们有多个特殊字符时,使用gsub删除名称和代码'

在ggplot2的框图中绘制所有级别的系数

您是否可以将组添加到堆叠的柱状图

在数据帧列表上绘制GGPUP

R:如果为NA,则根据条件,使用列名模式将缺少的值替换为另一列中的值

如何将一列中的值拆分到R中各自的列中

如何在R中使用混合GAM模型只对固定的影响因素进行适当的预测?

TidyVerse中长度不等的列结合向量

注释不会绘制在所有ggplot2面上

抽样变换-REXP与RWEIBUR

如何修改GT表中组名行的 colored颜色 ?

为什么在POSIXct-times的向量上循环会改变R中的类型?

如果y中存在x中的值,则将y行中的多个值复制到相应的x行中

使用相对风险回归计算RR

用LOOCV进行K近邻问题

如何从r中最早的公共月-日开始,在不同年份计算不同组中相同数量的值?