В base R
(пакеты не требуются)
SurvivalByAge <- lapply(c("50:59","60:69","70:200"), function(X) df$Survival[unlist(lapply(eval(parse(text=X)),grep,df$Age))])
names(SurvivalByAge) <- c("50:59","60:69","70:200")
SurvivalByAge
$`50:59`
[1] 14 0 0 6
$`60:69`
[1] 5 3 5 5 7 7 4 7 9
$`70:200`
[1] 12 2 13 6 0
Или, в качестве альтернативы, получить сумму
SurvivalByAge <- lapply(c("50:59","60:69","70:200"), function(X) sum(df$Survival[unlist(lapply(eval(parse(text=X)),grep,df$Age))]))
names(SurvivalByAge) <- c("50:59","60:69","70:200")
SurvivalByAge
$`50:59`
[1] 20
$`60:69`
[1] 52
$`70:200`
[1] 33
Данные:
df <- data.frame(Age = c(59,63,71,67,48,78,65,65,73,78,56,67,69,43,58,61,60,75,66,56),Survival=c(6,5,12,4,10,6,5,7,2,0,14,7,9,6,0,3,5,13,7,0))