# [R] weighted average

David Winsemius dwinsemius at comcast.net
Tue Jul 23 01:17:41 CEST 2013

```On Jul 22, 2013, at 3:23 PM, David Winsemius wrote:

>
> On Jul 22, 2013, at 3:12 PM, Robert Lynch wrote:
>
>> I am trying to compute GPA from class grades(which have been normallized)
>> I have for example the following matrix
>>
>> Master =
>> SID    B2A    B2B    B2C   C2A     C2B    C2C    C118A    C118B     C118C
>> 001    0.01    0.5      -0.4    1.2       -1.8     0.3      -0.3       0.4
>>         0.5
>> 002    0.01    0.5      -0.4    0.5       -0.4     1.2      -1.8       0.3
>>         -0.3
>> 003    0.04    0.05     0.5    -0.4     - 0.5     0.4      -1.2       1.8
>>       0.3
>> etc
>>
>> Where each column has a zero mean and a standard deviation of 1.  I want to
>> calculate a weighted average for each row(student ID) that takes into
>> account that
>> B2A, C118A, C118B, and C118C are all 4 unit classes, and the rest, B2B,
>> B2C, C2A,C2B,C2C are 5 unit classes
>>
>> I have tried
>> Units<-c(4,5,5,5,5,5,4,4,4)
>> Master\$zGPA <-weighted.means(Master[,2:10],Units)
>>
>> But that gets me one number and not a vector.
>
> Perhaps something along lines of
>
> Master\$zGPA <-sapply( weighted.means(Master[,2:10], weighted.means, weghts=Units)
>
> (Untested in absence of data or name of package from which function is loaded.)
>
>> ?weighted.means
> No documentation for ‘weighted.means’ in specified packages and libraries:
> you could try ‘??weighted.means’

If you are using weighted.mean and want this applied by row (one row per student I guess) , then probably this would be better:

Master\$zGPA <-  apply( Master[,2:10],  1, weighted.means, w=Units)

--
David.

>
> ---
> David Winsemius
> Alameda, CA, USA
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help