>>>>> Jim Lemon <drjimle...@gmail.com> >>>>> on Mon, 26 Jan 2015 11:21:03 +1100 writes:
> Hi Allen, How about this: > sum_w_NA<-function(x) ifelse(all(is.na(x)),NA,sum(x,na.rm=TRUE)) Excuse, Jim, but that's yet another "horrible misuse of ifelse()" John Fox's reply *did* contain the "proper" solution if (all(is.na(x))) NA else sum(x, na.rm=TRUE) The ifelse() function should never be used in such cases. Read more after googling "Do NOT use ifelse()" -- include the quotes in your search -- or directly at http://stat.ethz.ch/pipermail/r-help/2014-December/424367.html Yes, this has been on R-help a month ago.. Martin > On Mon, Jan 26, 2015 at 10:21 AM, 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. ______________________________________________ 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.