В столбце 2 есть ,
, что делает класс character
.Таким образом, мы удаляем ,
, преобразовываем его в numeric
и получаем sum
после группировки по идентификатору длины строки 'Column1' (rleid
из data.table
)
library(dplyr)
library(data.table)
df1 %>%
mutate(Column2 = as.numeric(str_remove(Column2, ","))) %>%
group_by(grp = rleid(Column1)) %>%
summarise(Column1 = first(Column1),
Column2 = sum(Column2)) %>%
ungroup %>%
select(-grp)
Или используя data.table
методы
setDT(df1)[, .(Column1 = first(Column1),
Column2 = sum(as.numeric(sub(",", "", Column2)))), .(grp = rleid(Column1))]
data
df1 <- structure(list(Column1 = c("FLOWING", "DOWNTIME", "FLOWING",
"FLOWING", "FLOWING", "FLOWING", "DOWNTIME", "FLOWING", "FLOWING",
"DOWNTIME", "FLOWING", "FLOWING", "FLOWING", "DOWNTIME", "FLOWING",
"FLOWING", "FLOWING", "DOWNTIME", "DOWNTIME"), Column2 = c("",
"1,922", "23", "8", "23", "26", "36", "1", "8", "12", "0", "3",
"13", "2", "10", "12", "30", "24", "1")), class = "data.frame",
row.names = c(NA, -19L))