r - 计算R中逗号分隔列中每个元素的值总和

标签 r dplyr

我有一个数据框,例如:

VALUE Names 
1     Sp1,Sp2
1     Sp2
2     Sp3,Sp4
4     Sp2,Sp1

我想以逗号分隔的方式计算每个 df$Names 的总和,并得到一个新的数据框,例如:

Name Sum
Sp1   5
Sp2   6
Sp3   2
Sp4   2  

如果有帮助,这里是 dput 格式的数据框:

structure(list(VALUE = c(1L, 1L, 2L, 4L), Names = c("Sp1,Sp2", 
"Sp2", "Sp3,Sp4", "Sp2,Sp1")), class = "data.frame", row.names = c(NA, 
-4L))

最佳答案

我们可以使用 separate_rows 来拆分 'Names' 列,然后通过 sum

进行分组
library(dplyr)
library(tidyr)
df1 %>% 
  separate_rows(Names) %>%
  group_by(Names) %>% 
  summarise(Sum = sum(VALUE))

-输出

# A tibble: 4 × 2
  Names   Sum
  <chr> <int>
1 Sp1       5
2 Sp2       6
3 Sp3       2
4 Sp4       2

关于r - 计算R中逗号分隔列中每个元素的值总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70352080/

相关文章:

r - 如何创建一个小于前一列值的新列

r - 迭代 dplyr::summarise 中的值和变量名称

r - 在小标题中显示测量单位

r - ggplot2 中的水平条形图

r - 来自合奏的 MLR3 平均分数

r - 如何使用 apply、cat 和 print,而不获取 NULL

r - 如何在 slidify 中打印表格?

r - 抑制 R 中的静态代码检查( future 包)

运行 `rlang::last_error()`看看错误发生在哪里

r - 如何在 dplyr 中使用 group_by() 和 do() 为每个因子级别应用函数