It`s probably an easy question, but couldn`t figure it out.
I`ve defined a function like: 
rmse<-function (x){
dquared<-x^2
sum1<-sum(x^2)
rmse<-sqrt((1/length(x))*sum1)
rmse}
My problem is, that I have NA Values in x and the above function returns NA.
I`m looking for a way to use "na.rm=TRUE" like in for instance
mean(x,na.rm=TRUE).
Does anybody know how to do this?
Thank you very much.
Mauro
--
View this message in context:
http://r.789695.n4.nabble.com/Integrate-na-rm-in-own-defined-functions-tp3462492p3462492.html
Sent from the R help mailing list archive at Nabble.com.
This should work!!
rmse<-function (x){ 
dquared<-x^2 
sum1<-sum(x^2,na.rm=TRUE) 
rmse<-sqrt((1/length(x))*sum1) 
rmse}
--
View this message in context:
http://r.789695.n4.nabble.com/Integrate-na-rm-in-own-defined-functions-tp3462492p3462615.html
Sent from the R help mailing list archive at Nabble.com.
Am 20.04.2011 10:59, schrieb Mauro:> It`s probably an easy question, but couldn`t figure it out. > > I`ve defined a function like: > > rmse<-function (x){ > dquared<-x^2 > sum1<-sum(x^2) > rmse<-sqrt((1/length(x))*sum1) > rmse} > > My problem is, that I have NA Values in x and the above function returns NA. > > I`m looking for a way to use "na.rm=TRUE" like in for instance > mean(x,na.rm=TRUE).If you had no sum function to give the "na.rm=TRUE" parameter, you can add the tiny line to your code: x <- x[!is.na(x)] Or give your function a na.rm parameter yourself: rmse<-function (x, na.rm=FALSE){ if(na.rm==TRUE){ x <- x[!is.na(x)] } dquared<-x^2 sum1<-sum(x^2) rmse<-sqrt((1/length(x))*sum1) rmse }