Re: [R] dataframes of unequal size

2005-07-19 Thread Liaw, Andy
Seems like no one had responded to this one yet, so I'll take a stab:

## Generate some bogus data:
set.seed(45)
dat - cbind(expand.grid(LETTERS[1:2], 1:3), round(runif(6), 2))
names(dat) - c(state, psu, weight)
dat2 - data.frame(state=sample(c(A, B), 100, replace=TRUE),
   psu=sample(3, 100, replace=TRUE),
   weight=rep(0, 100))

## The actual work:
split(dat2$weight, interaction(dat2$state, dat2$psu)) -
split(dat$weight, interaction(dat$state, dat$psu))

This, I think, will only work correctly if all state/psu combinations in
your C are also present in C1.  If not, you can just augment C1 to
include them.

HTH,
Andy


 From: Renuka Sane
 
 I have two dataframes C and C1. Each has three columns viz. state, psu
 and weight. The dataframes are of unequal size i.e. C1 could be
 2/25/50 rows and C has 42000 rows.  C1 is the master table i.e.
 C1$state, C1$psu and C1$weight are never the same. ThisA. P., Urban, 0
 is not so for C.
 
 For example
 C
 state, psu,weight
 A. P., Urban, 0
 Mah., Rural, 0
 W.B., Rural,0
 Ass., Rural,0
 M. P., Urban,0
 A. P., Urban, 0
 ...
 
 C1
 state, psu, weight
 A. P., Urban, 1.3
 A. P., Rural, 1.2
 M. P., Urban, 0.8
 ..
 
 For every row of C, I want to check if C$state==C1$state and
 C$psu==C1$psu. If it is, I want C$weight - C1$weight, else C$weight
 should be zero.
 
 I am doing the following
 for( i in 1:length(C$weight)) {
  C$w[C$state[i]==C1$state  C$psu[i]==C1$psu] - C1$w[C$state[i] ==
 C1$state  C$psu[i] == C1$psu]
 }
 
 This gives me the correct replacements for the number of rows in C1
 and then just repeats the same weights for the remaning rows in C.
 
 Can someone point out the error in what I am doing or show the correct
 way of doing this?
 
 Thanks,
 Renuka
 
 __
 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
 
 


__
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


[R] dataframes of unequal size

2005-07-18 Thread Renuka Sane
I have two dataframes C and C1. Each has three columns viz. state, psu
and weight. The dataframes are of unequal size i.e. C1 could be
2/25/50 rows and C has 42000 rows.  C1 is the master table i.e.
C1$state, C1$psu and C1$weight are never the same. ThisA. P., Urban, 0
is not so for C.

For example
C
state, psu,weight
A. P., Urban, 0
Mah., Rural, 0
W.B., Rural,0
Ass., Rural,0
M. P., Urban,0
A. P., Urban, 0
...

C1
state, psu, weight
A. P., Urban, 1.3
A. P., Rural, 1.2
M. P., Urban, 0.8
..

For every row of C, I want to check if C$state==C1$state and
C$psu==C1$psu. If it is, I want C$weight - C1$weight, else C$weight
should be zero.

I am doing the following
for( i in 1:length(C$weight)) {
 C$w[C$state[i]==C1$state  C$psu[i]==C1$psu] - C1$w[C$state[i] ==
C1$state  C$psu[i] == C1$psu]
}

This gives me the correct replacements for the number of rows in C1
and then just repeats the same weights for the remaning rows in C.

Can someone point out the error in what I am doing or show the correct
way of doing this?

Thanks,
Renuka

__
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