Создайте мужские и женские матрицы и затем используйте указанные вычисления.
ix <- -(1:2)
males <- as.matrix(subset(DF, DMSex == "M")[ix])
females <- as.matrix(subset(DF, DMSex == "F")[ix])
data.frame(id = unique(DF$id),
together = rowSums(pmin(females, males)),
males_only = rowSums(pmax(males - females, 0)),
females_only = rowSums(pmax(females - males, 0)))
подача:
id together males_only females_only
2 12 15 45 30
3 13 15 45 15
Примечание
Lines <- "id DMSex t1 t2 t3 t4 t5 t6
12 M 15 0 0 15 15 15
12 F 0 15 15 0 0 15
13 F 15 0 15 0 0 0
13 M 15 15 0 15 0 15"
DF <- read.table(text = Lines, header = TRUE)