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>:
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
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 fornea cdigo mnimo reproduzvel.