Da para fazer com o aggregate() que nem te falaram antes, só acrescentando mais um critério no parâmetro by (no proprio help tem exemplo de agregações por 2 variaveis...), ou com o by()

idade=c("1","3","2","2","1","2","1","3","1","3")
sexo <- c("1","1","2","2","1","2","1","1","1","1")
tcont <- c(100,320,24,256,134,290,18,34,15,121)
read <- c("s","n","n","n","s","s","s","n","n","s")
dados <- data.frame(idade, sexo,tcont,read)

by(dados, list(dados$sexo, dados$idade), function(x) data.frame(sexo=x$sexo[1], idade=x$idade[1], tcont=sum(x$tcont), read=sum(x$read == 's')))

Pra fazer tudo ficar num só data.frame, da para usar do.call()

do.call(rbind, by(dados, list(dados$sexo, dados$idade), function(x) data.frame(sexo=x$sexo[1], idade=x$idade[1], tcont=sum(x$tcont), read=sum(x$read == 's'))))

Não tem todas combinações sexo-idade pq nos dados que tu deu como exemplo eles não aparecem


2013/10/4 Fátima Lima Paula <fatima.lima.paula@gmail.com>
Pessoal, o Fernando me ajudou a agregar com 2 variáveis. Agora preciso agregar estratificando. Ou seja, 

idade=c("1","3","2","2","1","2","1","3","1","3")
sexo <- c("1","1","2","2","1","2","1","1","1","1")
tcont <- c(100,320,24,256,134,290,18,34,15,121)
read <- c("s","n","n","n","s","s","s","n","n","s")

dados <- data.frame(sexo,tcont,read)
dados

dados$read <- as.numeric(ifelse(read == 's', 1, 0))

dados

Agora quero que o resultado fique assim:


   sexo idade     tcont    read
1     1     1 
2     1     2  
3     1     3  
4     2     1
5     2     2 
6     2     3 

O tcont será a soma e a coluna de read terá a quantidade de readmissões estratificada.
Alguém pode me ajudar?
Obrigada
Fátima








--
"Minha felicidade depende da qualidade dos meus pensamentos"

_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.