首页 > 解决方案 > R - 对数据框中的每两列求和,并将结果粘贴到最后的新列

问题描述

我有一个动态长度的数据框,即每次附加新变量时它都会变长。在这种情况下,我需要对每两列中的值求和8:length(df),并将结果(每两列的总和)附加到此数据帧的末尾。所以我想为所有有问题的列自动化是这样的:

df <- df %>%
mutate(sumAB = A + B)

理想情况下,我想基于包含colnames我已经准备好的预期的向量来命名这些新列。由于我对 R 相当陌生,因此我无法使用 for 循环或 apply 系列来运行它。每一个建议都表示赞赏。谢谢!

标签: r

解决方案


您可以使用split.default拆分每两列,然后使用lapply对值求和。

cols <- 8:ncol(df)
result <- cbind(df[1:8], sapply(split.default(df[cols], 
                     rep(1:length(cols), each = 2, length.out = length(cols))), 
                     rowSums, na.rm = TRUE))
result

推荐阅读