真数立方根的负数

Zha*_*g18 17 r

我试图看看是否有一个函数来直接获得负数的真正立方根.例如,在Java中,有Math.cbrt()功能.我正在寻找R中的等价物.

否则,我目前的黑客是:

x <- -8
sign(x) * abs(x)^(1/3)
Run Code Online (Sandbox Code Playgroud)

每次打字都非常不优雅和麻烦.谢谢!

Jos*_*ien 23

听起来你只需要定义自己的Math.cbrt()功能.

这将使操作从不优雅和繁琐的东西转变为干净,富有表现力且易于应用的东西:

Math.cbrt <- function(x) {
    sign(x) * abs(x)^(1/3)
}

x <- c(-1, -8, -27, -64)

Math.cbrt(x)
# [1] -1 -2 -3 -4
Run Code Online (Sandbox Code Playgroud)

  • @MichaelRoswell:你的问题是操作顺序问题。`-2^(1/3)` 与 `-(2^(1/3))` 相同,而不是 `(-2)^(1/3)`。 (2认同)