【问题标题】:Raise to power in R在 R 中提升权力
【发布时间】:2015-07-14 15:42:28
【问题描述】:

这是一个初学者的问题。

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

    2 ^ 10
    
    [1] 1024
    
    2 ** 10
    
    [1] 1024
    
  2. power(x,y)之类的函数吗?

【问题讨论】:

  • ?'**' :** is translated in the parser to ^
  • @rawr 谢谢。我应该阅读整个文档页面。它说:** is translated in the parser to ^, but this was undocumented for many years. ...
  • 在命令行输入**也会得到Error: unexpected '^' in "**"

标签: r mathematical-expressions


【解决方案1】:

1:没有区别。它被保留以允许旧的 S 代码继续运行。这在 ?Math?Arithmetic

中记录了一个“注释”

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

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

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

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

【讨论】:

  • 哇,带前缀符号的函数有点惊喜!谢谢!
  • 同意,这是一个惊喜。 is.function( ``**``` ) # Error: object '**' not found (括号内有反引号。)
  • 昨天早上,我的妻子问我一个表达式中的插入符号 (^) 是什么意思,但后来她仍然感到困惑,因为它是填字游戏线索的一部分:“就像 8^2 和 4^ 3"。答案是“等于”,这是她从我谈到质因数时得出的,并指出它们都是 2^6。
  • 该注释不再在?Math 下,而是在?`**`?Arithmetic?`^` 下:“** 在解析器中被翻译为^,但多年来一直没有记录。它在 Becker et al (1988) 中作为索引条目出现,指向 Deprecated 的帮助,但实际上并没有在该页面上提及。尽管它在 S 中已被弃用 20 年,但在 2008 年仍被 R 接受。 "这也是python中的幂运算符。
猜你喜欢
  • 2010-11-15
  • 2016-04-03
  • 2018-12-03
  • 2015-11-13
  • 1970-01-01
  • 2018-01-07
  • 2015-01-11
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多