Hello everyone. I want to thank you for your response.
I tried this on weekend to attack my problem:
1) Turned into factors all my variables to tabulate:
infec1<-bamas$P2_A
infec2<-bamas$P2_B
infec3<-bamas$P2_C
aglomera<-bamas$QCL_1
Where bamas is my data frame, P2_A, P2_B and P2_C the infections and QCL_1
the clusters.
2) Defined a table for each one of the variables I wanted:
t1<-table(infec1,aglomera)
t2<-table(infec2,aglomera)
t3<-table(infec3,aglomera)
3) Tables generated above are of n1 x 4, n2 x 4, n3 x 4 where n1, n2 and n3
are different and so the dimmensions of my matrices, then if I want to sum
the three tables R showed me the error that they were of
different dimmensions, so I decided to make them of the same
dimmensions by "filling the holes" (missing rows) with zeros of each row in
each table in order to transform them into a matrix of N x 4:
For example, comparing my table t1 with t2, I could see that, in table
1 there where missing rows 7, 10, 12 and 13, and in the case of t3 rows 7
and 12 ;
t1
aglomera
infec1 1 2 3 4
1 117 88 76 83
2 10 10 9 7
3 15 11 14 14
4 2 0 1 1
5 2 3 1 0
6 1 0 1 0
8 3 3 0 1
9 3 1 1 0
11 0 0 1 1
t3
aglomera
infec2 1 2 3 4
1 12 9 6 6
2 37 45 33 37
3 11 11 8 11
4 3 0 0 2
5 2 1 0 0
6 0 0 0 1
8 3 1 2 2
9 2 2 0 2
10 1 1 2 1
11 1 0 0 0
13 0 0 1 0
Then I did the following instructions
u<-cbind(0,0,0,0)
rt1<-rbind(t1[1:6,],u,t1[7:8,],u,t1[9,],u,u)
rt2<-rbind(t2[1:6,],u,t2[7:10,],u,u,t2[11,])
rt3<-rbind(t3[1:6,],u,t3[7:10,],u,u)
4) Now all my tables are 13 x 4 so I defined as matrix:
mrt1<-matrix(rt1,nrow=13,ncol=4)
mrt2<-matrix(rt2,nrow=13,ncol=4)
mrt3<-matrix(rt2,nrow=13,ncol=4)
5) And then I added them:
total<-mrt1+mrt2+mrt3
total
[,1] [,2] [,3] [,4]
[1,] 130 97 83 89
[2,] 53 55 42 46
[3,] 33 36 36 39
[4,] 5 1 2 3
[5,] 5 4 1 0
[6,] 1 1 1 3
[7,] 0 0 0 0
[8,] 8 6 4 4
[9,] 6 4 1 2
[10,] 1 2 2 3
[11,] 1 1 1 1
[12,] 0 0 0 0
[13,] 0 0 1 0
which is the result I wanted.
I don't know if this is the best way to make this kind of tables, but at
least it worked well on weekend late at night :P
If someone have a better (faster) way to make them please help me.
Warm regards from Mexico.
-----Mensaje original-----
De: Petr PIKAL [mailto:petr.pikal at precheza.cz]
Enviado el: Lunes, 03 de Diciembre de 2007 02:30 a.m.
Para: rodrigueza at schwabe.com.mx
CC: r-help at r-project.org
Asunto: Re: [R] Help with tables
Hi
I am not sure but if I remember correctly I had seen similar output in
Frank Harrel's book. So you could check some function from Hmisc package,
probably summarize.
Regards
Petr
petr.pikal at precheza.cz
r-help-bounces at r-project.org napsal dne 02.12.2007 03:16:09:
I guess you can get the result by
1) concatenating all the variables (P2_A, P2_B, P2_C) into one variable
,
2) replicating segment membership properly,
3) make the table of 1) and 2)
For example, the following may do the job.
## (1) Generate data set
# Set random seed
set.seed(0)
n.obs <- 15 # Number of patients
disease.lv <- 1:10 ## different types of disease
data1 <- as.data.frame(t(replicate(n.obs, sample(disease.lv, 3)))) #
Hello, I'm new using R and developing tables.
I have a problem in developing a table. In a questionaire I made I
ask
this
question "Please tell me the first three sympthoms caused by
Respiratory
tract infection you've caught this year", then the people answer three
sympthoms, the first mention (Top of mind) is saved in a variable
called
"P2_A", the second mention in a variable called "P2_B" and the third
mention
in "P2_C". Each answer is coded with numbers like this:
1 = Flu
2 = Cough
3 = Asthma
....
13 = Fever
I've already done a K-cluster analysis and segmented my data base. So
my
first task is to develop tables to develop tables of frequencies
crossing
Cluster vs. "P2_A" in order to know which are the top of mind products
and
their frequencies by cluster, then the second mention and third
mention.
I've used this instruction which worked well:
table(infec1,aglomera)
aglomera
infec1 1 2 3 4
1 117 88 76 83
2 10 10 9 7
3 15 11 14 14
4 2 0 1 1
5 2 3 1 0
6 1 0 1 0
8 3 3 0 1
9 3 1 1 0
11 0 0 1 1
Where "infec1" is a factor of "P2_A" and "aglomera" is a factor of the
variable "Cluster" I made. It worked well when I study them
separately...however I would like to know the TOTAL mentions of each
sympthom by cluster. I've done this exercise in SPSS using the
"Multiple
Response" instruction first grouping my three variables (i.e. "P2_A",
"P2_B"
and "P2_C") into a variable called "sick" and cross tabulating it vs.
QCL_1
(my cluster variable) and it gave me the table I need in this way
(showed
at
the bottom of this mail):
How can I made a table like this in R???. I've tried combining my
variables
in a matrix and using xtabs, ftable, table, structable and a lot of
combination of them but I haven't had succed with any of them.
Please help me with this issue, I don't want to keep using SPSS any
more.
Thanx in advance.
P.D. Result from SPSS is shown below.
* * * C R O S S T A B U L A T I O N * * *
$SICK (group) mr sick
by QCL_1 Cluster Number of Case
QCL_1
Count I
I Row
I Total
I 1 I 2 I 3 I 4 I
$SICK --------+--------+--------+--------+--------+
1 I 130 I 97 I 83 I 89 I 399
Gripe, influenza, ca I I I I I 83.1
+--------+--------+--------+--------+
2 I 53 I 55 I 42 I 46 I 196
Tos de cualquier tip I I I I I 40.8
+--------+--------+--------+--------+
3 I 33 I 36 I 36 I 39 I 144
Dolor irritaci?n I I I I I 30.0
+--------+--------+--------+--------+
4 I 5 I 1 I 2 I 3 I 11
Bronquitis I I I I I 2.3
+--------+--------+--------+--------+
5 I 5 I 4 I 1 I 0 I 10
Sinusitis I I I I I 2.1
+--------+--------+--------+--------+
6 I 1 I 1 I 1 I 3 I 6
Rinitis I I I I I 1.3
+--------+--------+--------+--------+
8 I 8 I 6 I 4 I 4 I 22
Amigdalitis I I I I I 4.6
+--------+--------+--------+--------+
9 I 6 I 4 I 1 I 2 I 13
Faringitis I I I I I 2.7
+--------+--------+--------+--------+
10 I 1 I 2 I 2 I 3 I 8
Laringitis I I I I I 1.7
+--------+--------+--------+--------+
11 I 1 I 1 I 1 I 1 I 4
Neumonia I I I I I .8
+--------+--------+--------+--------+
13 I 0 I 0 I 1 I 0 I 1
Asma I I I I I .2
+--------+--------+--------+--------+
Column 153 116 104 107 480
Total 31.9 24.2 21.7 22.3 100.0
Percents and totals based on respondents
480 valid cases; 0 missing cases
Act. Calef Alejandro Rodr?guez Cuevas
Analista de mercado
Laboratorios Farmasa S.A. de C.V.
Schwabe Mexico, S.A. de C.V.
Bufalo Nr. 27
Col. del Valle 03100
Mexico, D.F.
Mexico
Tel. 52 00 26 80
email: rodrigueza at schwabe.com.mx
www.schwabe.com.mx
www.umckaloabo.com.mx
--
======================================
T.K. (Tae-kyun) Kim
Ph.D. student
Department of Marketing
Marshall School of Business
University of Southern California
======================================
[[alternative HTML version deleted]]