[R] Need to incorporate the use of na.rm into custom function

Ochsner, Scott A sochsner at bcm.edu
Fri Oct 1 17:39:42 CEST 2010


Jeff,

Thanks for the help.  I should have thought of passing na.rm to sum.  This worked nicely.

Scott


Scott A. Ochsner, PhD
One Baylor Plaza BCM130, Houston, TX 77030
Voice: (713) 798-6227  Fax: (713) 790-1275 
-----Original Message-----
From: jspies at gmail.com [mailto:jspies at gmail.com] On Behalf Of Jeffrey Spies
Sent: Friday, October 01, 2010 10:13 AM
To: Ochsner, Scott A
Cc: r-help at r-project.org
Subject: Re: [R] Need to incorporate the use of na.rm into custom function

You can use na.omit on x after it is passed into your apply function if na.rm == T, or simply pass your na.rm to functions that use it, such as sum.

Hope that helps,

Jeff.

On Fri, Oct 1, 2010 at 11:07 AM, Ochsner, Scott A <sochsner at bcm.edu> wrote:
> Hi,
>
> Take a matrix with missing values:
>
>> X = matrix(rnorm(10), ncol = 5)
>> X[2,4]=NA
>> X
>           [,1]       [,2]       [,3]       [,4]       [,5] [1,] 
> -0.1566427 -0.7382232 -1.0564624 -0.8412139  0.9370319 [2,] -1.0289865 
> -0.8452054 -0.1349459         NA -0.1749113
>
> I want to apply a custom function over the rows such that the NAs are ignored in a similar fashion as to how the following works.
>
>> means<-apply(X,1,mean,na.rm=TRUE)
>
> Custom function:
>
> liptak<-function (x,df) 
> 2*(pnorm(abs(sum(x*df)/sqrt(sum(df^2))),lower.tail=FALSE))
>
> I want to be able to do the following:
>
>>rslt<-apply(X,1,liptak,na.rm=TRUE)
>
> Can someone point me in the right direction on how to incorporate the use of na.rm into my function?
>
>
> Scott
>
>> sessionInfo()
> R version 2.11.0 (2010-04-22)
> i386-pc-mingw32
>
> locale:
> [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United 
> States.1252 [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C 
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> loaded via a namespace (and not attached):
> [1] tools_2.11.0
>
> Scott A. Ochsner, PhD
> NURSA Bioinformatics
> Baylor College of Medicine
> One Baylor Plaza
> Mail Stop: BCM-130
> Houston, TX 77030
> Voice: (713) 798-6227
> Fax: (713) 790-1275
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list