【发布时间】:2016-09-08 03:00:57
【问题描述】:
我有一个数据集,我希望将 n 列中的每个值与 (n+(ncol/2)) 列中的对应值相加;即,因此对于具有 22 列的数据集,我可以将第 1 列第 1 行中的值与第 12 行第 1 列中的值相加,然后重复此操作,直到第 11 列与第 22 列相加。该解决方案需要适用于数百行.
如何使用 R 执行此操作,同时忽略列名?
【问题讨论】:
标签: r sum multiple-columns
我有一个数据集,我希望将 n 列中的每个值与 (n+(ncol/2)) 列中的对应值相加;即,因此对于具有 22 列的数据集,我可以将第 1 列第 1 行中的值与第 12 行第 1 列中的值相加,然后重复此操作,直到第 11 列与第 22 列相加。该解决方案需要适用于数百行.
如何使用 R 执行此操作,同时忽略列名?
【问题讨论】:
标签: r sum multiple-columns
假设你的数据是
d <- setNames(as.data.frame(matrix(rnorm(100 * 22), nc = 22)), LETTERS[1:22])
您可以使用数字进行简单的矩阵加法来选择列:
output <- d[, 1:11] + d[, 12:22]
所以,例如
all.equal(output[,1], d[,1] + d[,12])
# [1] TRUE
【讨论】: