Мы можем l oop над именами столбцов unique
, извлекая префиксную часть и получая rowMeans
un1 <- unique(sub("_\\d+$", "", names(w2)[-(1:2)]))
out <- cbind(w2[1:2], do.call(cbind, setNames(lapply(un1,
function(nm) rowMeans(w2[startsWith(names(w2), nm)], na.rm = TRUE)), un1)))