[R] Summarize data for MCA (FactoMineR)
Nelson Castillo
nelsoneci at gmail.com
Sat May 3 03:00:37 CEST 2008
On Sun, Apr 27, 2008 at 10:10 AM, David Winsemius
<dwinsemius at comcast.net> wrote:
> "Nelson Castillo" <nelsoneci at gmail.com> wrote in
> news:2accc2ff0804251655o32686b99j73cf7df37243d08f at mail.gmail.com:
(cut)
> > That is, from:
> >
> >> x
> > weight var1 var2
> > 1 1 A B
> > 2 1 A B
> > 3 2 A B
> > 4 1 A B
> > 5 2 C D
> >
> > to:
> >
> >> y
> > weihgt var1 var2
> > 1 5 A B
> > 2 2 C D
> >
>
> Does this suffice?
>
> s.wt <- with(x,
> aggregate(weight, by=list(var1=var1,var2=var2), sum)
> )
> #> s.wt
> # var1 var2 x
> #1 A B 5
> #2 C D 2
>
> #then fix names
> names(s.wt)[3] <- "weight"
>
> #> s.wt
> # var1 var2 weight
> #1 A B 5
> #2 C D 2
That was exactly what I needed :-) Thanks a lot. I tried to make the
list that you have to pass
as "by" from colnames(edom)[2:14] :
[1] "VB21" "VB17_NEV" "VB17_LAV" "VB17_EQS" "VB17_CAL" "VB17_DEL"
[7] "VB17_LIC" "VB17_HEL" "VB17_AIR" "VB17_VEN" "VB17_TVC" "VB17_PC"
[13] "VB17_HMI"
But I couldn't do it. So, I did the list by hand.
edom2 = with(edom,aggregate(FACT_EXP_CAL_H,
by=list(Income=VB21,VB17_NEV=VB17_NEV, VB17_LAV=VB17_LAV,
VB17_EQS=VB17_EQS, VB17_CAL=VB17_CAL, VB17_DEL=VB17_DEL,
VB17_LIC=VB17_LIC, VB17_HEL=VB17_HEL, VB17_AIR=VB17_AIR,
VB17_VEN=VB17_VEN, VB17_TVC=VB17_TVC, VB17_PC=VB17_PC,
VB17_HMI=VB17_HMI), sum))
> nrow(edom2)
[1] 9817
And the row count matches what I did before with Perl :-)
> I believe that the reshape or reShape packages could do this in one
> step.
I skimmed over the paper and reshape seems to be very powerful. I
didn't know how to
use it in this case but I guess I'll get back to the paper some other time.
Regards,
Nelson.-
--
http://arhuaco.org
More information about the R-help
mailing list