Hi Nico,
You can use tapply:
> tapply( x[["Values" ]], x[[ "Names" ]], mean )
CK113234 CK113298 CK114042 CK116292 CK116296
216.5061 190.1725 222.8710 220.4324 204.5741
Alternatively,
> tapply( x$Values, x$Names, mean )
CK113234 CK113298 CK114042 CK116292 CK116296
216.5061 190.1725 222.8710 220.4324 204.5741
Hope it helps.
Jos?
Jos? Iparraguirre
Chief Economist
Age UK
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Nico Met
Sent: 23 January 2013 13:04
To: R help
Subject: [R] Average calculations
Dear all,
I have a matrix with two columns: "Names" and "Values"
In names: there are 4 groups they are, CK113234, CK116296, CK116292 and
CK114042
I want to *sort values* (decreasing order) based on each group and
take average of the *top two numbers* in each of the groups.
> dput(x)
structure(list(Names = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 5L, 5L, 5L, 5L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("CK113234",
"CK113298",
"CK114042", "CK116292", "CK116296"), class =
"factor"), Values c(208.336033333333,
223.29665, 221.63255, 211.29735, 217.75112, 210.97916, 222.67365,
216.0822, 189.83685, 194.1595, 210.66298, 223.637183333333, 187.74864,
192.5964, 237.593625, 216.8277, 225.8966, 228.00374, 214.99454,
211.38114, 218.7659, 209.9958, 214.804133333333, 215.184489473684,
224.2446, 217.559878571429, 232.022291666667, 214.02384, 236.393875,
228.73522)), .Names = c("Names", "Values"), class =
"data.frame", row.names
= c(NA,
30L))
The out put will look like following:
Names Values CK113234 222,98 CK116296 217,14 CK116292 232,79 CK114042
234,2
Your help is appreciated.
Regards
Nico
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org 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.
Wrap Up and Run 10k is back!
Also, new for 2013 ? 2km intergenerational walks at selected venues. So recruit
a buddy, dust off the trainers and beat the winter blues by
signing up now:
http://www.ageuk.org.uk/10k
Milton Keynes | Oxford | Sheffield | Crystal Palace | Exeter |
Harewood House, Leeds |
Tatton Park, Cheshire | Southampton | Coventry
Age UK Improving later life
http://www.ageuk.org.uk
-------------------------------
Age UK is a registered charity and company limited by guarantee, (registered
charity number 1128267, registered company number 6825798).
Registered office: Tavis House, 1-6 Tavistock Square, London WC1H 9NA.
For the purposes of promoting Age UK Insurance, Age UK is an Appointed
Representative of Age UK Enterprises Limited, Age UK is an Introducer
Appointed Representative of JLT Benefit Solutions Limited and Simplyhealth
Access for the purposes of introducing potential annuity and health
cash plans customers respectively. Age UK Enterprises Limited, JLT Benefit
Solutions Limited and Simplyhealth Access are all authorised and
regulated by the Financial Services Authority.
------------------------------
This email and any files transmitted with it are confidential and intended
solely for the use of the individual or entity to whom they are
addressed. If you receive a message in error, please advise the sender and
delete immediately.
Except where this email is sent in the usual course of our business, any
opinions expressed in this email are those of the author and do not
necessarily reflect the opinions of Age UK or its subsidiaries and associated
companies. Age UK monitors all e-mail transmissions passing
through its network and may block or modify mails which are deemed to be
unsuitable.
Age Concern England (charity number 261794) and Help the Aged (charity number
272786) and their trading and other associated companies merged
on 1st April 2009. Together they have formed the Age UK Group, dedicated to
improving the lives of people in later life. The three national
Age Concerns in Scotland, Northern Ireland and Wales have also merged with Help
the Aged in these nations to form three registered charities:
Age Scotland, Age NI, Age Cymru.