【问题标题】:Is there an automated pipeline for summing columns?是否有用于汇总列的自动管道?
【发布时间】:2022-11-25 05:01:51
【问题描述】:
我需要对多行中的数据求和以创建跨多列的单行。我处理了一个包含 52 个样本(列)的数据集并手动将它们全部输入,但我很快就要处理一个更大的数据集,其中手动输入是不合理的。这是我所做的一个小例子。
group_by(MTTAXA$MTmatch) %>%
summarise(comb_S026401.R1 = sum(S026401.R1), comb_S026404.R1 = sum(S026404.R1),
comb_S026406.R1 = sum(S026406.R1),comb_S026409.R1 = sum(S026409.R1),
comb_S026412.R1 = sum(S026412.R1), comb_S026413.R1 = sum(S026413.R1),
我相信有一个简单而优雅的解决方案。
【问题讨论】:
标签:
dplyr
group-by
summarize
【解决方案1】:
这是一个可能对您有帮助的示例
library(dplyr)
df <-
data.frame(
var_grp_1 = sample(LETTERS[1:3],100,replace = TRUE),
var_num_1 = rnorm(100),
var_num_2 = rnorm(100),
var_num_3 = rnorm(100),
var_num_4 = rnorm(100),
var_num_5 = rnorm(100),
var_num_5 = rnorm(100)
)
df %>%
group_by(var_grp_1) %>%
summarise(across(.cols = starts_with("var_num"),.fns = sum,.names = "comb_{.col}"))
# A tibble: 3 x 7
var_grp_1 comb_var_num_1 comb_var_num_2 comb_var_num_3 comb_var_num_4 comb_var_num_5 comb_var_num_5.1
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 A -3.96 -0.345 5.13 2.43 -2.78 0.120
2 B -12.6 -3.99 -2.26 -1.03 0.313 -1.24
3 C -2.62 3.92 -1.44 1.27 -0.342 2.59