r - R - 对数据框中的每两列求和,并将结果粘贴到最后的新列
问题描述
我有一个动态长度的数据框,即每次附加新变量时它都会变长。在这种情况下,我需要对每两列中的值求和8:length(df)
,并将结果(每两列的总和)附加到此数据帧的末尾。所以我想为所有有问题的列自动化是这样的:
df <- df %>%
mutate(sumAB = A + B)
理想情况下,我想基于包含colnames
我已经准备好的预期的向量来命名这些新列。由于我对 R 相当陌生,因此我无法使用 for 循环或 apply 系列来运行它。每一个建议都表示赞赏。谢谢!
解决方案
您可以使用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
推荐阅读
- android - CardView 不屏蔽父级内部
- android - 为一家公司与不同的供应商签署 Android APP
- mysql - 仅将 MySQL 转储文件中的选定列插入数据库
- shell - 如何同步 bash shell
- drools - drools - 7.6.0 数组索引超出范围异常
- php - 如何在节点 js 中创建类似 php 的函数
- mysql - MySQL (NOT IN) 条件在超过一定数量的元素后无法正确返回
- angular - 在数据表中,如果我在“columnDefs”中调用该方法,则它不起作用
- c# - 如何使用包含在列表 selenium c# 中的文本值打印元素
- mysql - MySQL Query To Find the Second Maximum Salary 所需的解释