I have the following: Tout = c(". ", ". ", + "-51.0", " -9.6", " -9.6", " -9.6", " -9.6", " -9.6", " -9.6", + " -9.6", " -9.5", " -9.5", " -9.6", " -9.5", " -9.6", " -9.6", + " -9.5", " -9.4", " -9.3", " -9.3", " -9.3", " -9.2", " -9.0", + " -9.0", " -8.9", " -8.9", " -8.9") How can I take the mean while ignoring the null values? I don't want to delete the ". ", just ignore. na.rm=TRUE does not work for this. Jeffrey
R. Michael Weylandt <michael.weylandt@gmail.com>
2011-Aug-02 21:56 UTC
[R] Calculate mean ignore null
Are you sure it doesn't? na.rm=T works for me, so I think your problem is elsewhere. Specifically, the example given below consists of 27 character strings, not numbers, so there' so surprise R doesn't want to give you a mean -- to R, it's as logical as asking for the average of "a" and "Q5" Try this: mean(as.double(Tout),na.rm=T) I get -11.048 with a warning message saying that some NA's were created in trying to coerce ". " to a double. Alternatively, if you didn't actually mean all those "" marks below (in which case I don't know what ". " is in R), try this: mean(Tout[Tout != ". "]), but again -- that's likely not your problem. Michael Weylandt On Tue, Aug 2, 2011 at 5:47 PM, Jeffrey Joh <johjeffrey@hotmail.com> wrote:> > I have the following: > > Tout = c(". ", ". ", > + "-51.0", " -9.6", " -9.6", " -9.6", " -9.6", " -9.6", " -9.6", > + " -9.6", " -9.5", " -9.5", " -9.6", " -9.5", " -9.6", " -9.6", > + " -9.5", " -9.4", " -9.3", " -9.3", " -9.3", " -9.2", " -9.0", > + " -9.0", " -8.9", " -8.9", " -8.9") > > > > How can I take the mean while ignoring the null values? I don't want to > delete the ". ", just ignore. na.rm=TRUE does not work for this. > > > Jeffrey > ______________________________________________ > R-help@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. >[[alternative HTML version deleted]]