On Dec 12, 2009, at 9:31 AM, Rodrigo Tsai wrote:
Dear R developers,
is that right?
-27^(1/3)
[1] -3
library(fortunes)
> fortune("^")
Thomas Lumley: The precedence of ^ is higher than that of unary minus.
It may be surprising, [...]
Hervé Pagès: No, it's not surprising. At least to me... In the country
where I grew up, I've been teached that -x^2 means -(x^2) not (-x)^2.
-- Thomas Lumley and Hervé Pagès (both explaining that operator
precedence is working perfectly well)
R-devel (January 2006)
Also see R FAQ 7.33:
http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-are-powers-of-negative-numbers-wrong_003f
Using the example in the FAQ:
> as.list(quote(-27^(1/3)))
[[1]]
`-`
[[2]]
27^(1/3)
So what you see above is the consequence of operator precedence, thus:
> (-27)^(1/3)
[1] NaN
which is what you are getting below for the first value in the vector.
c(-27,27)^(1/3)
[1] NaN 3
i'm using sign( c(-27,27) ) * abs( c(-27,27)) ^(1/3) ,
thanks
That seems to be a reasonable approach and if memory serves, has been
posted to the list previously.
HTH,
Marc Schwartz
______________________________________________
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.