On Nov 15, 2009, at 10:18 AM, <rkevinbur...@charter.net> wrote:
This is a very simple question but I couldn't form a site search
quesry that would return a reasonable result set.
Say I have a vector:
x <- c(0,2,3,4,5,-1,-2)
I want to replace all of the values in 'x' with the log of x.
Naturally this runs into problems since some of the values are
negative or zero. So how can I replace all of the positive elements
of x with the log(x) and the rest with zero?
> x <- c(0,2,3,4,5,-1,-2)
> x <- ifelse(x>0, log(x), 0)
Warning message:
In log(x) : NaNs produced
> x
[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 0.0000000
0.0000000
The warning is harmless as you can see, but if you wanted to avoid it,
then:
> x[x<=0] <- 0; x[x>0] <-log(x[x>0])
In the second command, you need to have the logical test on both sides
to avoid replacement " out of synchrony."
--
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
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.