[R] weight cases?

2006-10-14 Thread Adrian Dusa

Dear all,

This is probably a stupid question for which I have a solution, which 
unfortunately is not as straighforward as I'd like. I wonder if there's a 
simple way to apply a weighting variable for the cases of a dataframe (well 
I'm sure there is, I just cannot find it).
My toy example:

 my.data - data.frame(var1=c(c, e, a, d, b),
var2=c(E, B, A, C, D),
weight=c(1, 2, 1, 1, 1))

 table(my.data$var1, my.data$var2)

A B C D E
  a 1 0 0 0 0
  b 0 0 0 1 0
  c 0 0 0 0 1
  d 0 0 1 0 0
  e 0 1 0 0 0

Applying the weight variable, the table should yield a value of 2 for the eB 
combination:

 table(my.data$var1, my.data$var2)

A B C D E
  a 1 0 0 0 0
  b 0 0 0 1 0
  c 0 0 0 0 1
  d 0 0 1 0 0
  e 0 2 0 0 0


Thanks in advance,
Adrian

-- 
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd
050025 Bucharest sector 5
Romania
Tel./Fax: +40 21 3126618 \
  +40 21 3120210 / int.101

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] weight cases?

2006-10-14 Thread Gabor Grothendieck
Try this:

table(lapply(my.data, rep, my.data$weight)[1:2])

On 10/14/06, Adrian Dusa [EMAIL PROTECTED] wrote:

 Dear all,

 This is probably a stupid question for which I have a solution, which
 unfortunately is not as straighforward as I'd like. I wonder if there's a
 simple way to apply a weighting variable for the cases of a dataframe (well
 I'm sure there is, I just cannot find it).
 My toy example:

  my.data - data.frame(var1=c(c, e, a, d, b),
var2=c(E, B, A, C, D),
weight=c(1, 2, 1, 1, 1))

  table(my.data$var1, my.data$var2)

A B C D E
  a 1 0 0 0 0
  b 0 0 0 1 0
  c 0 0 0 0 1
  d 0 0 1 0 0
  e 0 1 0 0 0

 Applying the weight variable, the table should yield a value of 2 for the eB
 combination:

  table(my.data$var1, my.data$var2)

A B C D E
  a 1 0 0 0 0
  b 0 0 0 1 0
  c 0 0 0 0 1
  d 0 0 1 0 0
  e 0 2 0 0 0


 Thanks in advance,
 Adrian

 --
 Adrian Dusa
 Romanian Social Data Archive
 1, Schitu Magureanu Bd
 050025 Bucharest sector 5
 Romania
 Tel./Fax: +40 21 3126618 \
  +40 21 3120210 / int.101

 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
 and provide commented, minimal, self-contained, reproducible code.


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] weight cases?

2006-10-14 Thread Adrian Dusa
Thanks for this Gabor,

Sometimes weights can take various values, like 0.9
 rep(letters[1:3], c(1, 0.9, 1.6))
[1] a c

What if the weight variable would be:

my.data$weight - c(0.4, 2, 1.3, 0.9, 1)

The way I found the solution was to compute the unweighted table, then find 
the weight for each unique combination and multiply that with the 
corresponding row-column entry in the table. The solution though is not very 
satisfactory:

my.data$var1 - as.factor(my.data$var1)
my.data$var2 - as.factor(my.data$var2)
total - expand.grid(levels(my.data$var1), levels(my.data$var2))
rowsmy.data - apply(unique(my.data[,1:2]), 1, paste, collapse=)
rowstotal - apply(total, 1, paste, collapse=)
total$weight - 0
total$weight[sapply(rowsmy.data, function(x) which(rowstotal == x))] - 
unique(my.data)[,3]

(unweighted - table(my.data$var1, my.data$var2))
round(unweighted*total$weight, 0)


Yet another question: how would the weight variable be applied to correlate 
two numerical variables?

Best,
Adrian

On Saturday 14 October 2006 16:00, Gabor Grothendieck wrote:
 Try this:

 table(lapply(my.data, rep, my.data$weight)[1:2])

 On 10/14/06, Adrian Dusa [EMAIL PROTECTED] wrote:
  Dear all,
 
  This is probably a stupid question for which I have a solution, which
  unfortunately is not as straighforward as I'd like. I wonder if there's a
  simple way to apply a weighting variable for the cases of a dataframe
  (well I'm sure there is, I just cannot find it).
 
  My toy example:
   my.data - data.frame(var1=c(c, e, a, d, b),
 
 var2=c(E, B, A, C, D),
 weight=c(1, 2, 1, 1, 1))
 
   table(my.data$var1, my.data$var2)
 
 A B C D E
   a 1 0 0 0 0
   b 0 0 0 1 0
   c 0 0 0 0 1
   d 0 0 1 0 0
   e 0 1 0 0 0
 
  Applying the weight variable, the table should yield a value of 2 for the
  eB
 
  combination:
   table(my.data$var1, my.data$var2)
 
 A B C D E
   a 1 0 0 0 0
   b 0 0 0 1 0
   c 0 0 0 0 1
   d 0 0 1 0 0
   e 0 2 0 0 0
 
 
  Thanks in advance,
  Adrian
 
  --
  Adrian Dusa
  Romanian Social Data Archive
  1, Schitu Magureanu Bd
  050025 Bucharest sector 5
  Romania
  Tel./Fax: +40 21 3126618 \
   +40 21 3120210 / int.101
 
  __
  R-help@stat.math.ethz.ch mailing list
  https://stat.ethz.ch/mailman/listinfo/r-help
  PLEASE do read the posting guide
  http://www.R-project.org/posting-guide.html and provide commented,
  minimal, self-contained, reproducible code.

-- 
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd
050025 Bucharest sector 5
Romania
Tel./Fax: +40 21 3126618 \
  +40 21 3120210 / int.101

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] weight cases?

2006-10-14 Thread Gabor Grothendieck
Try this (and round the result to make to it comparable to your calculation):

xtabs(weight ~ var1 + var2, my.data)

On 10/14/06, Adrian Dusa [EMAIL PROTECTED] wrote:
 Thanks for this Gabor,

 Sometimes weights can take various values, like 0.9
  rep(letters[1:3], c(1, 0.9, 1.6))
 [1] a c

 What if the weight variable would be:

 my.data$weight - c(0.4, 2, 1.3, 0.9, 1)

 The way I found the solution was to compute the unweighted table, then find
 the weight for each unique combination and multiply that with the
 corresponding row-column entry in the table. The solution though is not very
 satisfactory:

 my.data$var1 - as.factor(my.data$var1)
 my.data$var2 - as.factor(my.data$var2)
 total - expand.grid(levels(my.data$var1), levels(my.data$var2))
 rowsmy.data - apply(unique(my.data[,1:2]), 1, paste, collapse=)
 rowstotal - apply(total, 1, paste, collapse=)
 total$weight - 0
 total$weight[sapply(rowsmy.data, function(x) which(rowstotal == x))] -
 unique(my.data)[,3]

 (unweighted - table(my.data$var1, my.data$var2))
 round(unweighted*total$weight, 0)


 Yet another question: how would the weight variable be applied to correlate
 two numerical variables?

 Best,
 Adrian

 On Saturday 14 October 2006 16:00, Gabor Grothendieck wrote:
  Try this:
 
  table(lapply(my.data, rep, my.data$weight)[1:2])
 
  On 10/14/06, Adrian Dusa [EMAIL PROTECTED] wrote:
   Dear all,
  
   This is probably a stupid question for which I have a solution, which
   unfortunately is not as straighforward as I'd like. I wonder if there's a
   simple way to apply a weighting variable for the cases of a dataframe
   (well I'm sure there is, I just cannot find it).
  
   My toy example:
my.data - data.frame(var1=c(c, e, a, d, b),
  
  var2=c(E, B, A, C, D),
  weight=c(1, 2, 1, 1, 1))
  
table(my.data$var1, my.data$var2)
  
  A B C D E
a 1 0 0 0 0
b 0 0 0 1 0
c 0 0 0 0 1
d 0 0 1 0 0
e 0 1 0 0 0
  
   Applying the weight variable, the table should yield a value of 2 for the
   eB
  
   combination:
table(my.data$var1, my.data$var2)
  
  A B C D E
a 1 0 0 0 0
b 0 0 0 1 0
c 0 0 0 0 1
d 0 0 1 0 0
e 0 2 0 0 0
  
  
   Thanks in advance,
   Adrian
  
   --
   Adrian Dusa
   Romanian Social Data Archive
   1, Schitu Magureanu Bd
   050025 Bucharest sector 5
   Romania
   Tel./Fax: +40 21 3126618 \
+40 21 3120210 / int.101
  
   __
   R-help@stat.math.ethz.ch mailing list
   https://stat.ethz.ch/mailman/listinfo/r-help
   PLEASE do read the posting guide
   http://www.R-project.org/posting-guide.html and provide commented,
   minimal, self-contained, reproducible code.

 --
 Adrian Dusa
 Romanian Social Data Archive
 1, Schitu Magureanu Bd
 050025 Bucharest sector 5
 Romania
 Tel./Fax: +40 21 3126618 \
  +40 21 3120210 / int.101


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] weight cases?

2006-10-14 Thread Gabor Grothendieck
I missed your second question.  See ?cov.wt

On 10/14/06, Gabor Grothendieck [EMAIL PROTECTED] wrote:
 Try this (and round the result to make to it comparable to your calculation):

 xtabs(weight ~ var1 + var2, my.data)

 On 10/14/06, Adrian Dusa [EMAIL PROTECTED] wrote:
  Thanks for this Gabor,
 
  Sometimes weights can take various values, like 0.9
   rep(letters[1:3], c(1, 0.9, 1.6))
  [1] a c
 
  What if the weight variable would be:
 
  my.data$weight - c(0.4, 2, 1.3, 0.9, 1)
 
  The way I found the solution was to compute the unweighted table, then find
  the weight for each unique combination and multiply that with the
  corresponding row-column entry in the table. The solution though is not very
  satisfactory:
 
  my.data$var1 - as.factor(my.data$var1)
  my.data$var2 - as.factor(my.data$var2)
  total - expand.grid(levels(my.data$var1), levels(my.data$var2))
  rowsmy.data - apply(unique(my.data[,1:2]), 1, paste, collapse=)
  rowstotal - apply(total, 1, paste, collapse=)
  total$weight - 0
  total$weight[sapply(rowsmy.data, function(x) which(rowstotal == x))] -
  unique(my.data)[,3]
 
  (unweighted - table(my.data$var1, my.data$var2))
  round(unweighted*total$weight, 0)
 
 
  Yet another question: how would the weight variable be applied to correlate
  two numerical variables?
 
  Best,
  Adrian
 
  On Saturday 14 October 2006 16:00, Gabor Grothendieck wrote:
   Try this:
  
   table(lapply(my.data, rep, my.data$weight)[1:2])
  
   On 10/14/06, Adrian Dusa [EMAIL PROTECTED] wrote:
Dear all,
   
This is probably a stupid question for which I have a solution, which
unfortunately is not as straighforward as I'd like. I wonder if there's 
a
simple way to apply a weighting variable for the cases of a dataframe
(well I'm sure there is, I just cannot find it).
   
My toy example:
 my.data - data.frame(var1=c(c, e, a, d, b),
   
   var2=c(E, B, A, C, D),
   weight=c(1, 2, 1, 1, 1))
   
 table(my.data$var1, my.data$var2)
   
   A B C D E
 a 1 0 0 0 0
 b 0 0 0 1 0
 c 0 0 0 0 1
 d 0 0 1 0 0
 e 0 1 0 0 0
   
Applying the weight variable, the table should yield a value of 2 for 
the
eB
   
combination:
 table(my.data$var1, my.data$var2)
   
   A B C D E
 a 1 0 0 0 0
 b 0 0 0 1 0
 c 0 0 0 0 1
 d 0 0 1 0 0
 e 0 2 0 0 0
   
   
Thanks in advance,
Adrian
   
--
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd
050025 Bucharest sector 5
Romania
Tel./Fax: +40 21 3126618 \
 +40 21 3120210 / int.101
   
__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html and provide commented,
minimal, self-contained, reproducible code.
 
  --
  Adrian Dusa
  Romanian Social Data Archive
  1, Schitu Magureanu Bd
  050025 Bucharest sector 5
  Romania
  Tel./Fax: +40 21 3126618 \
   +40 21 3120210 / int.101
 


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] weight cases?

2006-10-14 Thread Adrian Dusa
On Saturday 14 October 2006 16:52, Gabor Grothendieck wrote:
 Try this (and round the result to make to it comparable to your
 calculation):

 xtabs(weight ~ var1 + var2, my.data)

Oh yes... :)
It was so simple. Thanks for the cov.wt() as well.

Regards,
Adrian

-- 
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd
050025 Bucharest sector 5
Romania
Tel./Fax: +40 21 3126618 \
  +40 21 3120210 / int.101

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.