
Compartilho uma das soluções dada por: Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email:pd.mes@cbs.dk Priv:PDalgd@gmail.com Através da lista r-help@r-project.org: # CMR pair <- c(1,1,2,2,3,3,4,4,5,5,6,6,7,7) # identification treat <- c(1,0,1,0,1,0,1,0,1,0,1,0,1,0) # treatament 1 (A) or 0 (B) impr <- c(1,0,1,0,1,0,0,1,0,1,0,0,1,1) # improvement 1 (yes) 0 (no) treatfac <- factor(treat) levels(treatfac)<-list("A"=1,"B"=0 ) imprfac <- factor(impr) levels(imprfac)<-list("+"=1,"-"=0) dd<-data.frame(pair,treatfac,imprfac) dd pair treatfac imprfac 1 1 A + 2 1 B - 3 2 A + 4 2 B - 5 3 A + 6 3 B - 7 4 A - 8 4 B + 9 5 A - 10 5 B + 11 6 A - 12 6 B - 13 7 A + 14 7 B + # A solução # O segredo é rearrumar os dados primeiro: ddw <- reshape(dd, direction="wide", idvar="pair", timevar="treatfac") ddw pair imprfac.A imprfac.B 1 1 + - 3 2 + - 5 3 + - 7 4 - + 9 5 - + 11 6 - - 13 7 + + # Para em seguida, através da função xtabs (como mencionado anteriormente por Fernando) xtabs(~ imprfac.A + imprfac.B, ddw) # Se obter o resultado desejado: imprfac.B imprfac.A + - + 1 3 - 2 1 Maurício Cardeal UFBA Em 07/04/2017 15:17, FHRB Toledo escreveu:
help(xtabs)
2017-04-07 12:59 GMT-05:00 Mauricio Cardeal via R-br <r-br@listas.c3sl.ufpr.br <mailto:r-br@listas.c3sl.ufpr.br>>:
Boa tarde!
Por favor, como faço para construir uma tabela como a do modelo do final do script,
onde o conteúdo das 4 caselas são contagens do número de pares que combinam
melhora e não melhora de 2 tratamentos aplicados simultaneamente no mesmo
individuo (perna direita e perna esquerda), por exemplo ?
# CMR:
par <- c(1,1,2,2,3,3,4,4,5,5,6,6,7,7) # refere-se ao número do individuo trata <- c(1,0,1,0,1,0,1,0,1,0,1,0,1,0) # tratamento 1 (A) ou 0 (B) melhora <- c(1,0,1,0,1,0,0,1,0,1,0,0,1,1) # resultado do tratamento 1 (melhora) 0 (não melhora) tratac <- factor(trata) levels(tratac)<-list("A"=1,"B"=0 ) melhorac <- factor(melhora) levels(melhorac)<-list("+"=1,"-"=0)
data.frame(par,tratac,melhorac)
par tratac melhorac 1 1 A + 2 1 B - 3 2 A + 4 2 B - 5 3 A + 6 3 B - 7 4 A - 8 4 B + 9 5 A - 10 5 B + 11 6 A - 12 6 B - 13 7 A + 14 7 B +
# COMO FAÇO PARA GERAR ESSA TABELA A PARTIR DOS DADOS ACIMA?
# tratamento B # melhora melhora # + - #tratamento A melhora + 1 3 # melhora - 2 1
Obrigado,
Maurício Cardeal
UFBA
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-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 <http://www.leg.ufpr.br/r-br-guia>) e fornea cdigo mnimo reproduzvel.