[R] Finding a mean value of a variable holding a dummy variablefixed
Simon Blomberg
s.blomberg1 at uq.edu.au
Mon Mar 31 06:01:20 CEST 2008
How about this? :-)
president <- c("Johnson", "Johnson", "Johnson"," Johnson"," Johnson",
"Johnson","Nixon", "Nixon", "Nixon", "Nixon", "Nixon", "Nixon")
approval <- c(3,4,5,6,7,8,6,5,4,3,2,1)
fn <- function (x) c(first=x[1], last=x[length(x)], mean=mean(x))
lst <- tapply(approval, president, fn)
# Or if you need a data.frame:
res <- data.frame(matrix(unlist(lst), byrow=TRUE,
dimnames=list(names(lst), names(lst[[1]])), ncol=3))
Cheers,
Simon.
On Sun, 2008-03-30 at 23:21 -0400, Daniel Malter wrote:
> I found a solution. It's probably not the easiest one, but it works. It
> assumes that your data frame is ordered from earliest to latest record for
> each president, but it can be easily adjusted if you want to make it
> dependent on a third column. The final vector "index" gives you the line
> indices for the first record for each president. If you replace "min" by
> "max" you get the last instead of the first record. You can then find the
> values by
>
>
> ##Sample data
>
> president=c("Johnson","Johnson","Johnson","Johnson","Johnson","Johnson","Nix
> on","Nixon","Nixon","Nixon","Nixon","Nixon")
> approval=c(3,4,5,6,7,8,6,5,4,3,2,1)
> tapply(approval,president,mean)
>
> ##Find index for first row of each president; assumes ascending order of
> observations; change "min" to "max" to find last record
>
> index=NULL
> for(i in 1:length(unique(president)))
> index[i]=min(which((president==unique(president)[i])==TRUE))
>
> index
>
> ##Generate table with first approvals
>
> first.approval=data.frame(cbind(index,president[index],approval[index]))
> names(first.approval)=c("Index","President","Approval")
> first.approval
>
> Cheers,
> Daniel
>
>
>
>
> -------------------------
> cuncta stricte discussurus
> -------------------------
>
> -----Ursprüngliche Nachricht-----
> Von: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] Im
> Auftrag von Alexander Ovodenko
> Gesendet: Sunday, March 30, 2008 9:47 PM
> An: r-help at r-project.org
> Betreff: [R] Finding a mean value of a variable holding a dummy
> variablefixed
>
> I have time-series data on approval ratings of British Prime Ministers. The
> prime ministers dating from MacMillan onward till today are coded as dummy
> variables and the approval ratings are entered for each month. I want to
> know the mean value of the approval rating of each Prime Minister in the
> dataset and the approval rating during his/her first month and last month as
> PM. What R code should I enter for these data? In other words, I want hold
> the dummy corresponding to each Prime Minister fixed at value one and know
> the first rating that PM has, the last rating s/he has, and the mean rating
> s/he has. Thanks.
>
> [[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.
>
> ______________________________________________
> 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.
--
Simon Blomberg, BSc (Hons), PhD, MAppStat.
Lecturer and Consultant Statistician
Faculty of Biological and Chemical Sciences
The University of Queensland
St. Lucia Queensland 4072
Australia
Room 320 Goddard Building (8)
T: +61 7 3365 2506
http://www.uq.edu.au/~uqsblomb
email: S.Blomberg1_at_uq.edu.au
Policies:
1. I will NOT analyse your data for you.
2. Your deadline is your problem.
The combination of some data and an aching desire for
an answer does not ensure that a reasonable answer can
be extracted from a given body of data. - John Tukey.
More information about the R-help
mailing list