Seltsames Verhalten von R

Also, ich habe den folgenden Code in R:

y
a <- -0.1    
test <- (1/((y+as.numeric(!y))*(a-1)))  
test  
test^a  
-0.9090909^a 

Geben Sie mir die Ausgabe:

> 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

Ich verstehe nicht, warum es mir NaN gibt, wenn ich einen Test zur Potenz a mache, wenn klar ist, dass ich einfach einen einzelnen Wert aus dem Test kopieren und zur Potenz a erhöhen kann, und das funktioniert. Die Verwendung von test [1] ^ a funktioniert auch nicht.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage