[R] reshape: melt and cast

stephen sefick ssefick at gmail.com
Tue Sep 1 07:32:12 CEST 2015


This is very hard to read. Please use dput to provide data. I believe the
answer is in the manual. Look at the aggregation function argument.

Please excuse my brevity; this message was sent from my telephone.
On Sep 1, 2015 12:11 AM, "Matt Pickard" <matthew.david.pickard at gmail.com>
wrote:

> Hi,
>
> I have data that looks like this:
>
>
>
>
>
>
>
>
>
> *> head(ratings)  QCode  PID  RaterName SI1 SI2 SI3 SI4 SI5 SI6 SI7 SI8 SI9
> SI10 SI111 GUILT 1123 cwormhoudt   2   2   3   1   1   1   3   3   3
> 2    12  LOVE 1123 cwormhoudt   1   2   3   2   1   1   1   1   1    1
> 33 GUILT 1136 cwormhoudt   1   2   3   1   1   1   2   3   2    2    14
> LOVE 1136 cwormhoudt   1   2   3   1   1   1   1   1   1    1    25 GUILT
> 1137 cwormhoudt   2   2   2   1   1   1   2   3   1    2    16  LOVE 1137
> cwormhoudt   1   3   4   1   1   1   1   1   1    1    4*
>
>
>
>
>
>
>
>
> *> tail(ratings)      QCode  PID RaterName SI1 SI2 SI3 SI4 SI5 SI6 SI7 SI8
> SI9 SI10 SI112456    FUN 1555  zspeidel   1   3   3   1   1   1   1   1
> 1    1    12457    FUN 1556  zspeidel   1   2   2   1   1   1   1   1
> 1    1    12458    FUN 1558  zspeidel   1   2   3   1   1   1   1   1
> 1    1    12459 APPEAR 1558  zspeidel   1   3   3   1   1   1   2   1
> 1    2    12460 APPEAR 1559  zspeidel   1   3   3   1   1   1   2   1
> 1    2    12461    FUN 1559  zspeidel   1   2   2   1   1   1   1   1
> 1    1    1*
> I am trying to use the melt and cast functions to re-arrange it to look
> like this:
>
>
>
>
>
>
>
>
> *   QCode  PID sItem cwormhoudt zspeidel1 APPEAR 1123   SI1
> 1        12 APPEAR 1123   SI2          4        13 APPEAR 1123
> SI3          1        24 APPEAR 1123   SI4          3        15 APPEAR
> 1123   SI5          1        16 APPEAR 1123   SI6          1        3*
> So, I melt the data like this:
>
>
>
> *mratings = melt(ratings, variable_name="sItem")*
> Then cast the data like this:
>
>
> *> outData = cast(mratings, QCode + PID + sItem ~ RaterName)Aggregation
> requires fun.aggregate: length used as default*
>
> But the value columns appear to be displaying counts and not the original
> values:
>
>
>
>
>
>
>
>
>
>
>
>
>
> *> head(outData)   QCode  PID sItem cwormhoudt zspeidel1 APPEAR 1123
> SI1          1        12 APPEAR 1123   SI2          1        13 APPEAR
> 1123   SI3          1        14 APPEAR 1123   SI4          1        15
> APPEAR 1123   SI5          1        16 APPEAR 1123   SI6          1
> 1> which(outData$zpeidel==3)integer(0)*
> How to I prevent cast from aggregating the data according to counts?  Am I
> doing something wrong?
>
> Thanks in advance.
>
> MP
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list