If you want to sum every every four columns
# example data
set.seed(1)
(df <- data.frame(replicate(8,rnorm(5))))
X1 X2 X3 X4 X5 X6 X7
#1 -0.6264538 -0.8204684 1.5117812 -0.04493361 0.91897737 -0.05612874 1.35867955
#2 0.1836433 0.4874291 0.3898432 -0.01619026 0.78213630 -0.15579551 -0.10278773
#3 -0.8356286 0.7383247 -0.6212406 0.94383621 0.07456498 -1.47075238 0.38767161
#4 1.5952808 0.5757814 -2.2146999 0.82122120 -1.98935170 -0.47815006 -0.05380504
#5 0.3295078 -0.3053884 1.1249309 0.59390132 0.61982575 0.41794156 -1.37705956
X8
#1 -0.4149946
#2 -0.3942900
#3 -0.0593134
#4 1.1000254
#5 0.7631757
Create indicator for the columns to sum - this sums every four columns
(ind <- rep(1:2,each=4))
#[1] 1 1 1 1 2 2 2 2
Sum columns according to ind
t(rowsum(t(df),ind))
# 1 2
#[1,] 0.01992536 1.8065336
#[2,] 1.04472535 0.1292631
#[3,] 0.22529172 -1.0678292
#[4,] 0.77758346 -1.4212814
#[5,] 1.74295162 0.4238835
You can then use colnames
to assign column names.