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 }