[英]Raising vector with negative numbers to a fractional exponent in R
我有一個包含負數的數字向量,我想把它提升到一個小數指數,但不能弄清楚如何做到這一點。 這是一些示例代碼。
a = seq(5,-5,1)
b = a^(5/2)
當a
為負時, b
返回NAN
值。 然而,
d = -5^(5/2)
作品。 我知道這是因為R中的優先級,但我怎么做我想要的,即乘以a
的絕對值,然后分配負數(同時還評估a == 0
的可能性)?
我知道這更像是數學和R問題而不是統計數據,所以如果需要移動我會這樣做。
exponent <- function(a, pow) (abs(a)^pow)*sign(a)
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
也許不是最有效的方法,但這個想法應該是可用的。
你的矛盾結果源於這樣一個事實:作為一種乘法的力量比否定更強大。 也就是說,
-5^(5/2) = - ( 5^(5/2) ).
對於否定論證,這種分數權力應該是正確的。 這將是解決方案
x^2 = (-5)^5 = - 5^5
這是不可能實際解決的。
復數的分數冪是一種你真的不應該打開的蠕蟲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.