Мы можем сделать это в tidyverse
без bind_cols
library(tidyverse)
df1 %>%
mutate_all(list(c = ~ cumsum(.)))
# A B C D E A_c B_c C_c D_c E_c
#1 1 2 4 7 4 1 2 4 7 4
#2 0 1 3 9 5 1 3 7 16 9
#3 1 3 2 3 1 2 6 9 19 10
#4 0 0 4 2 1 2 6 13 21 11
#5 1 1 5 1 1 3 7 18 22 12
или с использованием colCumsums
из matrixStats
library(matrixStats)
df1[paste0("c", names(df1))] <- colCumsums(as.matrix(df1))
данных
df1 <- structure(list(A = c(1L, 0L, 1L, 0L, 1L), B = c(2L, 1L, 3L, 0L,
1L), C = c(4L, 3L, 2L, 4L, 5L), D = c(7L, 9L, 3L, 2L, 1L), E = c(4L,
5L, 1L, 1L, 1L)), class = "data.frame", row.names = c("1", "2",
"3", "4", "5"))