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)[1] TRUE TRUE NA TRUE
x != "NA"
!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