From: Pascal Boisson <Pascal.Boisson_at_scri.ac.uk>

Date: Tue 26 Apr 2005 - 23:12:30 EST

return(M)

}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Apr 26 23:16:52 2005

Date: Tue 26 Apr 2005 - 23:12:30 EST

Hi List,

Say I have a data.frame "DF" with 6 columns, 3 factors and 3 variables, with different number of repetitions for each combination of factors. I would like to build, for two given factors, a matrix per variable, containing in each cell the mean or sd for a given couple of factors.

I have managed to get to the result I wanted step by step, but I would
like to have it in a function. I have not found what I was looking for
so I decided to try to write my own function, using aggregate( ) to
generate the mean values as a dataframe, and then display this as a
matrix.

I'd like it to be general enough so that I could use it in many cases.

>From what I have tried and understood, table( ) cannot do what I want (no mean or sd ...) neither does xtabs( ), i.e. asking for a formula not a function to passed as an argument ...

My final aim would be to plot this with persp( ), and it seems that persp( ) must be fed with 2 dimensional arrays ...

Below is what I have tried to write, but it is not working.
It might be awkward, but I think it can work ... I think it is a problem
about correctly receiving and passing arguments in the different
function calls.

Do you think there would be a smarter way of doing this ? Or can you see
what is going wrong with this ?

Any advice will be welcome

Pascal Boisson

matrixation<-function(DF, var, factorlist, FUN, condition)

*## DF is the original dataframe with raw results from my experiments
**## var is the var that I want to print
*

## eg. DF$var1

## factorlist is a list of the two factor I want to mean against (but

I'm noot sure List is the best form for this argument),

*## eg. list(DF$fact1, DF$fact2)
**## FUN would be the function I want to use during aggregation,
**## eg. Mean( )
*

## condition would be a condition for building a subset

## eg. DF$fact3==1

{

sDF <- subset(DF, condition)

A <- aggregate(sDF, factorlist, FUN)

M <- matrix(data=NA, nrow = length(levels(factorlist[[1]])),

ncol = length(levels(factorlist[[2]])), dimnames = list(levels(factorlist[[1]]),levels(factorlist[[2]]) ) ) for (i in 1:length(A[,1])) { tPhii <- A$Group.1[i] tAppari <- A$Group.2[i] M[tPhii, tAppari] <- A$pest_max_number[i] }

return(M)

}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

**DISCLAIMER:\
**

\ This email is from the Scottish Crop Researc...{{dropped}}

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Apr 26 23:16:52 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:31:26 EST
*