Dear Allen, This seems reasonably straightforward to me, suggesting that I might not properly understand what you want to do. How about something like the following?
> mysum <- function(...){ + x <- c(...) + if (all(is.na(x))) NA else sum(x, na.rm=TRUE) + } > mysum(1, 2, 3, NA) [1] 6 > mysum(1:3) [1] 6 > mysum(NA, NA, NA) [1] NA > mysum(c(NA, NA, NA)) [1] NA I hope this helps, John ------------------------------------------------ John Fox, Professor McMaster University Hamilton, Ontario, Canada http://socserv.mcmaster.ca/jfox/ On Sun, 25 Jan 2015 15:21:52 -0800 "Allen Bingham" <aebingh...@gmail.com> wrote: > I understand that in order to get the sum function to ignore missing values > I need to supply the argument na.rm=TRUE. However, when summing numeric > values in which ALL components are "NA" ... the result is 0.0 ... instead of > (what I would get from SAS) of NA (or in the case of SAS "."). > > Accordingly, I've had to go to 'extreme' measures to get the sum function to > result in NA if all arguments are missing (otherwise give me a sum of all > non-NA elements). > > So for example here's a snippet of code that ALMOST does what I want: > > > SumValue<-apply(subset(InputDataFrame,!is.na(Variable.1)|!is.na(Variable.2), > select=c(Variable.1,Variable.2)),1,sum,na.rm=TRUE) > > In reality this does NOT give me records with NA for SumValue ... but it > doesn't give me values for any records in which both Variable.1 and > Variable.2 are NA --- which is "good enough" for my purposes. > > I'm guessing with a little more work I could come up with a way to adapt the > code above so that I could get it to work like SAS's sum function ... > > ... but before I go that extra mile I thought I'd ask others if they know of > functions in either base R ... or in a package that will better mimic the > SAS sum function. > > Any suggestions? > > Thanks. > ______________________________________ > Allen Bingham > aebingh...@gmail.com > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.