Re: [R] dataframes of unequal size

From: Liaw, Andy <andy_liaw_at_merck.com>
Date: Tue 19 Jul 2005 - 22:50:18 EST


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 Received on Tue Jul 19 22:58:02 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:33:48 EST