2
所以,我在R上的下面的代碼:奇怪的行爲
y
a <- -0.1
test <- (1/((y+as.numeric(!y))*(a-1)))
test
test^a
-0.9090909^a
給我輸出:
> y
[1] 0.00000000 0.06024096 0.00000000 0.01098901 0.00000000 0.00000000
[7] 0.01829268 0.00000000 0.06976744 0.00000000 0.04380665 0.01351351
[13] 0.00000000 0.00000000 0.00000000 0.00000000 0.00310559 0.00000000
[19] 0.00000000 0.00000000 0.09957447 0.00000000 0.03738318 0.00000000
> a <- -0.1
> test <- (1/((y+as.numeric(!y))*(a-1)))
> test
[1] -0.9090909 -15.0909091 -0.9090909 -82.7272727 -0.9090909
[6] -0.9090909 -49.6969697 -0.9090909 -13.0303030 -0.9090909
[11] -20.7523511 -67.2727273 -0.9090909 -0.9090909 -0.9090909
[16] -0.9090909 -292.7272727 -0.9090909 -0.9090909 -0.9090909
[21] -9.1297591 -0.9090909 -24.3181818 -0.9090909
> test^a
[1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[17] NaN NaN NaN NaN NaN NaN NaN NaN
> -0.9090909^a
[1] -1.009577
我不明白爲什麼它正在測試的時候給我的NaN權力a,當清楚時,我可以簡單地從測試中複製一個單一的值,並將其提升到權力a,這是有效的。使用測試[1]^a也不起作用。
這是[R FAQ 7.33](http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why -are - 權力 - 的負號碼,wrong_003f) – 2014-12-03 13:40:30