Aggregating data help

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Aggregating data help

jimdholland
Hello,

I have a dataset with student performance on a math test.  There are
multiple cases for each student (identified by id) and the concept as a
variable.

> rtest

     id   test subject     grade    concept   correct   tested per_corr
 year
1    1   83   Mathema     8         8.2.D       1            1      100
      2011
2    1   83   Mathema     8         8.3.A       1            2       50
       2011
3    1   83   Mathema     8         8.3.B       2            2      100
      2011
4    1   83   Mathema     8         8.4          2            2      100
      2011
5    1   83   Mathema     8         8.5.A       1            2       50
       2011
6    1   83   Mathema     8         8.5.B       0            2        0
        2011
7    2   83   Mathema     8         8.2.D       1            1      100
      2011
8    2   83   Mathema     8         8.3.A       2            2      100
      2011
9    2   83   Mathema     8         8.3.B       1            2       50
     2011
10  2   83   Mathema     8         8.4          2            2      100
      2011
11  2   83   Mathema     8         8.5.A       1           2       50
     2011
12  2   83   Mathema     8         8.5.B       0           2        0
     2011


I would like to make a variable for each concept (e.g. 8.2D, 8.3.A, 8.3B)
and then put that percentage correct currently under per_corr for that
variable.

Such as

      id   test    subject     grade      8.2D      8.3.A       8.3.B
year
1    1      83   Mathema     8           100        50            100
 2011
2    2      83   Mathema     8           100       100            50
2011




Does anybody have an effcient way of doing this?

What trips me up is handling the variables such as test and subject.

Thank you,

James

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Aggregating data help

F Mai
Reply | Threaded
Open this post in threaded view
|

Re: Aggregating data help

djmuseR
In reply to this post by jimdholland
Hi:

Here's a way using the reshape2 package.

library('reshape2')
rsub <- subset(rtest, concept %in% c('8.2.D', '8.3.A', '8.3.B'))
# want year ahead of concept in the variable list
rsub <- rsub[, c(1:4, 9, 5:8)]

cast(rsub, id + test + subject + grade + year ~ concept, value_var = 'per_corr')
# Using per_corr as value column.  Use the value argument to cast to
override this choice
#   id test subject grade year 8.2.D 8.3.A 8.3.B
# 1  1   83 Mathema     8 2011   100    50   100
# 2  2   83 Mathema     8 2011   100   100    50

HTH,
Dennis

On Thu, Oct 20, 2011 at 11:55 AM, James Holland <[hidden email]> wrote:

> Hello,
>
> I have a dataset with student performance on a math test.  There are
> multiple cases for each student (identified by id) and the concept as a
> variable.
>
>> rtest
>
>     id   test subject     grade    concept   correct   tested per_corr
>  year
> 1    1   83   Mathema     8         8.2.D       1            1      100
>      2011
> 2    1   83   Mathema     8         8.3.A       1            2       50
>       2011
> 3    1   83   Mathema     8         8.3.B       2            2      100
>      2011
> 4    1   83   Mathema     8         8.4          2            2      100
>      2011
> 5    1   83   Mathema     8         8.5.A       1            2       50
>       2011
> 6    1   83   Mathema     8         8.5.B       0            2        0
>        2011
> 7    2   83   Mathema     8         8.2.D       1            1      100
>      2011
> 8    2   83   Mathema     8         8.3.A       2            2      100
>      2011
> 9    2   83   Mathema     8         8.3.B       1            2       50
>     2011
> 10  2   83   Mathema     8         8.4          2            2      100
>      2011
> 11  2   83   Mathema     8         8.5.A       1           2       50
>     2011
> 12  2   83   Mathema     8         8.5.B       0           2        0
>     2011
>
>
> I would like to make a variable for each concept (e.g. 8.2D, 8.3.A, 8.3B)
> and then put that percentage correct currently under per_corr for that
> variable.
>
> Such as
>
>      id   test    subject     grade      8.2D      8.3.A       8.3.B
> year
> 1    1      83   Mathema     8           100        50            100
>  2011
> 2    2      83   Mathema     8           100       100            50
> 2011
>
>
>
>
> Does anybody have an effcient way of doing this?
>
> What trips me up is handling the variables such as test and subject.
>
> Thank you,
>
> James
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] 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.
>

______________________________________________
[hidden email] 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.