Dear Jari,

I had included the test for NAīs just to be sure the function can handle datasets with missing values.

Hereīs an updated version without this specification:

backsin<-function(x,y){
backtransf<-list()
back<-((sin(x))^2)*100
backtransf$mback<-tapply(back,y,mean)
backtransf$sdback<-tapply(back,y,sd)/sqrt(length(y))
backtransf
}



Jari Oksanen wrote:

Christoph,

I guess your "NA" refers to Not Available (missing, NA). In that case,
you should check it with is.na() instead of != "NA". See this:



x <- c(3,4,NA,5)
x != "NA"


[1] TRUE TRUE NA TRUE


!is.na(x)


[1]  TRUE  TRUE FALSE  TRUE

No idea if this helps, but it was a problem with the code anyway.

cheers, jari oksanen
On Fri, 2005-01-28 at 11:04 +0100, Christoph Scherber wrote:


Hi!

OK, here are some more details on the function: My dataframe consists of several columns of categorical variables (letīs call them A,B,C) plus a column with a response variable y (which is arcsine-square root transformed proportions)

I am now trying to write a function that automatically gives me the back-transformed mean values + standard errors for y for each column in the dataframe. Ideally, this would be something like

tapply(y,list(A,B,C,D),backtransformed.mean)

Here is the correct version of the function:

backsin<-function(x,y){
backtransf<-list()

back<-((sin(x[x!="NA"]))^2)*100
backtransf$mback<-tapply(back,y[x!="NA"],mean)
backtransf$sdback<-tapply(back,y[x!="NA"],std)/sqrt(length(y[x!="NA"]))
backtransf
}


Regards, Christoph


Petr Pikal wrote:



Hi

I am not sure if anybody gave you a reply, but do you think you gave enough detail about your data, what you expect, what you did, what was the response and how it differ from expected output and best of all ***working*** example?

BTW, what is stdev?

If you wanted to compute standard deviation sd is enough.

Cheers
Petr

On 27 Jan 2005 at 12:20, Christoph Scherber wrote:





Dear all,

Iīve got a simple self-written function to calculate the mean + s.e.


from arcsine-transformed data:


backsin<-function(x,y,...){
backtransf<-list()
backtransf$back<-((sin(x[x!="NA"]))^2)*100
backtransf$mback<-tapply(backtransf$back,y[x!="NA"],mean)
backtransf$sdback<-tapply(backtransf$back,y[x!="NA"],std)/sqrt(length(y[x!="NA"]))




backtransf


}

I would like to apply this function to whole datasets, such as

tapply(variable,list(A,B,C,D),backsin)

Of course, this doesnīt work with the way in which the backsin()
function is specified.

Does anyone have suggestions on how I could improve my function?

Regards,
Christoph

______________________________________________
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




Petr Pikal
[EMAIL PROTECTED]







______________________________________________
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







______________________________________________ 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

Reply via email to