2017-02-01 44 views
2

在控制台中键入0-2:-4返回[1] -2 -1 0 1 2 3 4。任何人都可以解释这背后的逻辑吗?为什么序列操作符0-2:-4会导致-2 -1 0 1 2 3 4?

+2

它在R-FAQ(有点):参见7.33节和?语法。你的表达被解释为0减seq(2,-4)。一元“ - ” - 运算符的优先级高于“冒号”,冒号“:” - 运算符的优先级高于二进制减号。 –

+0

只是一个普遍的说明 - 如果你没有做到你期望的事情,并且你在这里发布,告诉我们你的期望不会有什么坏处。我看到你的代码,并知道R如何处理这些事情,所以在我看来,它看起来应该是这样。这是一个简单的例子,很容易找出你可能打算做的事情,但如果你问一个问题,澄清你的期望是个好主意。 – Dason

回答

7

由于操作的顺序:

0 - (2:-4) 

它扩展到

0 - c(2, 1, 0, -1, -2, -3, -4) 

的更多细节,包括二元运算符的优先顺序的完整列表,请参阅?Syntax

+0

很好的编辑,谢谢@Gregor。 (不要以为我实际上已经阅读过那个页面:-) – r2evans

相关问题