From: baptiste auguie <ba208_at_exeter.ac.uk>

Date: Fri, 20 Mar 2009 17:42:44 +0000

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. Received on Fri 20 Mar 2009 - 16:46:56 GMT

Date: Fri, 20 Mar 2009 17:42:44 +0000

Agreed --- if you provided a working example it might be as simple as,

library(reshape)

recast(res, Id~Tick, fun="mean", id.var=c("Id", "Tick"),
measure.var="X")

which i had to test with this,

res <- list(read.table(textConnection(

"Id X Tick 1 2.2 1 2 3.1 1 1 1.2 2 2 2.2 2 "), head=T), read.table(textConnection( "Id X Tick 1 1.4 1 2 3.2 1 1 1.1 2 2 3.0 2 "), head=T))

baptiste

On 20 Mar 2009, at 17:27, David Winsemius wrote:

> I say again:

*>
**> Build a simple example;
**>
**> --
**> David Winsemius
**> On Mar 20, 2009, at 1:00 PM, Altaweel, Mark R. wrote:
**>
**>> I will try to be clearer with what I wanted.
**>>
**>> What I am trying to do is take a list, say defined as res, that has
**>> a size of 1000
**>>
**>> For example:
**>>
**>> res[[1]]
**>> res[[2]] .....until res[[1000]]
**>> ----------------------------------------------
**>> Id X Tick Id X Tick ........
**>> 1 2.2 1 1 1.4 1
**>> 2 3.1 1 2 3.2 1
**>> 1 1.2 2 1 1.1 2
**>> 2 2.2 2 2 3.0 2
**>>
**>> Now, say I want to get the mean of Id=1 or Id=2 for all instances
**>> where Tick=1 or Tick=2. So in the example, the result for X when
**>> Id=1 and Tick=1 is: 1.8 (i.e., the average between 2.2 and 1.4 in
**>> res[[1]] and res[[2]]). However, in reality I would calculate the
**>> mean for all 1000 instances of Tick=1 and Id=1. I would also do this
**>> for all Id and Tick values.
**>>
**>> So basically this is what I would like to do for all the 1000
**>> elements in my list. Take the Id and Tick values for each of the
**>> elements and find the mean of the x value for all 1000 instances
**>> that occur for the given Id and Tick values.
**>>
**>> It would be nice to get the result in a form such as:
**>>
**>> result<- (some function that does what I want for all Ids and Tick
**>> values in the 1000 element list)
**>>
**>> result
**>> --------------------
**>> Id meanX Tick
**>> 1 1.8 1
**>> 2 3.15 1
**>> 1 1.15 2
**>> 2 2.6 2
**>>
**>>
**>> This is what I tried in order to get the mean for all tick values
**>> less than 601 and Ids greater than 0:
**>>
**>> weightX<-sapply(res, function(.df) {mean(.df$X[.df$Id>0 & .df
**>> $Tick<601])})
**>>
**>> This does not work as it seems to not provide the mean across all
**>> the elements and ids included in the conditional. I think the result
**>> is it just overwrites the previous answer so my final results is not
**>> as large as I would expect.
**>>
**>> Thanks again in advance.
**>>
**>>
**>> Mark
**>>
**>> -----Original Message-----
**>> From: baptiste auguie [mailto:ba208_at_exeter.ac.uk]
**>> Sent: Fri 3/20/2009 4:32 AM
**>> To: Altaweel, Mark R.
**>> Cc: r-help_at_r-project.org
**>> Subject: Re: [R] functions within a list
**>>
**>> Hi,
**>>
**>>
**>> you could have a look at the doBy package which makes these
**>> operations
**>> easier. Hadley's plyr package is also another option.
**>>
**>> baptiste
**>>
**>> On 20 Mar 2009, at 01:01, Altaweel, Mark R. wrote:
**>>
**>>> Hi,
**>>>
**>>> I am trying to perform various functions on a list with a number of
**>>> elements. For example. I would like to take the mean of different
**>>> variable values in the entire list. As an example,
**>>> say I have a list with 1000 elements and variables called Id and
**>>> Tick. What I would like to do is take the mean of a variable called
**>>> X for each Tick in the data element. So, there can be say 1 to 600
**>>> tick values per element in a list, that would mean I would like to
**>>> find the 600 mean values for each of the ticks values in the 1000
**>>> elements.
**>>>
**>>>
**>>> I tried a simple attempt below, but I am sure it is way off as it
**>>> didn't produce what I expected:
**>>>
**>>> //res=res[[1..1000]]
**>>> weightX<-sapply(res, function(.df) {mean(.df$X[.df$Id>0 & .df
**>>> $Tick<601])})
**>>>
**>>> Basically, I was trying to get the mean for all tick values less
**>>> than 600 that have an Id variable greater than 0. So, since there
**>>> are 600 ticks I would like to return a result with 600 mean values,
**>>> for each of the 600 ticks, that factors all the 1000 occurrences of
**>>> each tick, starting from 1.
**>>>
**>>> I hope this is clear. Thanks in advance.
**>>>
**>>> Mark
**>>>
**>>> ______________________________________________
**>>> 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.
**>>
**>> _____________________________
**>>
**>> Baptiste Auguié
**>>
**>> School of Physics
**>> University of Exeter
**>> Stocker Road,
**>> Exeter, Devon,
**>> EX4 4QL, UK
**>>
**>> Phone: +44 1392 264187
**>>
**>> http://newton.ex.ac.uk/research/emag
**>>
**>> ______________________________________________
**>> 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.
**>
**> David Winsemius, MD
**> Heritage Laboratories
**> West Hartford, CT
**>
*

Baptiste Auguié

School of Physics

University of Exeter

Stocker Road,

Exeter, Devon,

EX4 4QL, UK

Phone: +44 1392 264187

http://newton.ex.ac.uk/research/emag

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. Received on Fri 20 Mar 2009 - 16:46:56 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Fri 20 Mar 2009 - 17:30:29 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*