[R-br] código para construir tabela com dados pareados [RESOLVIDO]
Mauricio Cardeal
mcardeal2010 em gmail.com
Domingo Abril 9 09:23:52 BRT 2017
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 em cbs.dk Priv:PDalgd em gmail.com
Através da lista r-help em 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 em listas.c3sl.ufpr.br <mailto:r-br em 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 em listas.c3sl.ufpr.br <mailto:R-br em 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.
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170409/78c272a9/attachment.html>
Mais detalhes sobre a lista de discussão R-br