在R中提升权力

Nic*_*ick 36 r mathematical-expressions

这是初学者的问题.

  1. ^和之间有什么区别**?例如:

    2 ^ 10
    
    [1] 1024
    
    2 ** 10
    
    [1] 1024
    
    Run Code Online (Sandbox Code Playgroud)
  2. 有没有这样的功能power(x,y)

42-*_*42- 36

1:没有区别.它被保留以允许旧的S代码继续运行.这记录在"注意"中?Math

2:是的但是你已经知道了:

`^`(x,y)
#[1] 1024
Run Code Online (Sandbox Code Playgroud)

在R中,数学运算符实际上是解析器负责重新排列参数和函数名称以模拟普通数学中缀表示法的函数.还记录在?Math.

编辑:让我补充一点,知道R如何处理中缀运算符(即两个参数函数)对于理解基础中缀"[["和"[" - 作为(功能)第二个参数的使用非常重要)lapplysapply:

> sapply( list( list(1,2,3), list(4,3,6) ), "[[", 1)
[1] 1 4
> firsts <- function(lis) sapply(lis, "[[", 1)
> firsts( list( list(1,2,3), list(4,3,6) ) )
[1] 1 4
Run Code Online (Sandbox Code Playgroud)

  • 有趣的是`\`**\`(2,10)`不起作用. (11认同)
  • 同意,这是一个惊喜。`is.function(` ``**``` `) # 错误:找不到对象 '**'`(括号内有反引号。) (2认同)