56

这是一个初学者的问题。

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

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

4

1 回答 1

53

1:没有区别。它被保留以允许旧的 S 代码继续运行。这被记录在一个“注释”中?Math?Arithmetic

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

`^`(x,y)
#[1] 1024

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

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

> 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
于 2015-05-05T03:53:21.863 回答