В соответствии с предложением @yarnabrina мы можем преобразовать factor
/ character
столбцы в numeric
group_by
Dates
и sum
и, наконец, преобразовать его снова.
library(dplyr)
data.frame(t(df)) %>%
mutate_at(vars(starts_with("user")), ~as.numeric(as.character(.))) %>%
group_by(Dates) %>%
summarise_all(sum) %>%
ungroup() %>% t %>% data.frame()
# X1 X2 X3
#Dates 2010-03-12 2010-03-13 2010-03-14
#user1 123 324 9255
#user2 97 65 693
#user3 99 8764 9850
#user4 21 7653 5533
#user5 652 842 10026
Или другой подход, использующий основание R, состоит в том, чтобы split
столбцы, основанные на последней строке, преобразовать их в числовые и взять сумму по строкам.
sapply(split.default(df[-nrow(df), ], unlist(df[nrow(df), ])),
function(x) {x[] <- lapply(x, as.numeric);rowSums(x)})
# 2010-03-12 2010-03-13 2010-03-14
#user1 123 324 9255
#user2 97 65 693
#user3 99 8764 9850
#user4 21 7653 5533
#user5 652 842 10026