我在我的R编程中遇到了一个非常奇怪的问题。这里是一些数值的样本,如果我将这些数值除以10,结果会变成NaN。
这里发生了什么情况,我应该如何对向量执行此操作,以免丢失数字?
vals <- c(-0.02964166, -0.01018776, -0.01758487)
vals^(1/10)
[1] NaN NaN NaN
但是如果我把数字分别除以10,我得到的不是NaN
,而是数值。
-0.02964166^(1/10)
[1] -0.7033804
-0.01018776^(1/10)
[1] -0.6321321
-0.01758487^(1/10)
[1] -0.6675963
这里发生了什么情况,我应该如何对向量执行此操作,以免丢失数字?
x^{\frac{1}{10}} = \sqrt[10]{x^1}
;正如Ben所说,减号在^
之前被计算,因此R试图计算负数的平方根,而负数没有实数平方根,因此结果为NaN
。 - Julianx^{\frac{1}{10}} = \sqrt[10]{x^1}
;正如Ben所说,减号在^
之前被计算,因此R试图计算负数的平方根,而负数没有实数平方根,因此结果为NaN
。 - Julianx^{\frac{1}{10}} = \sqrt[10]{x^1}
;正如Ben所说,减号在^
之前被计算,因此R试图计算负数的平方根,而负数没有实数平方根,因此结果为NaN
。 - undefined