将带负数的向量提升到R中的小数指数

时间:2015-04-28 12:27:18

标签: r math

我有一个包含负数的数字向量,我想把它提升到一个小数指数,但不能弄明白怎么做。这是一些示例代码。

a = seq(5,-5,1)
b = a^(5/2)
b为否定时,

NAN会返回a个值。但是,

d = -5^(5/2) 

的工作原理。我知道这是因为R中的优先级,但是如何做我想要的,即乘以a的绝对值,然后分配负数(同时还评估{{1}的可能性}})?

我知道这更多是数学和R问题而不是统计数据,所以如果需要移动,我会这样做。

3 个答案:

答案 0 :(得分:7)

exponent <- function(a, pow) (abs(a)^pow)*sign(a)

答案 1 :(得分:2)

b = rep(NA,length(a))       # create a vector of length equal to length of a
b[a>=0] =  ( a[a>=0])^(5/2) # deal with the non-negative elements of a
b[a< 0] = -(-a[a< 0])^(5/2) # deal with the negative elements of a

也许不是最有效的方法,但这个想法应该是可用的。

答案 2 :(得分:0)

你的矛盾结果源于这样一个事实:作为一种乘法的力量比否定更强大。即,

-5^(5/2) = - ( 5^(5/2) ).

这种分数权力应该正确地不被定义为否定论据。这将是

的解决方案
x^2 = (-5)^5 = - 5^5

这是不可能实际解决的。

复数的分数幂是一种你真的不应该打开的蠕虫。