提问人:Marc 提问时间:6/7/2014 最后编辑:HenrikMarc 更新时间:7/19/2022 访问量:1162
使用 “:”(冒号)时运算符的优先级顺序
Order of operator precedence when using ":" (the colon)
问:
我正在尝试使用以两种看似等效的方式表示的数字向量从向量中提取值:
x <- c(1,2,3)
x[2:3]
# [1] 2 3
x[1+1:3]
# [1] 2 3 NA
我很困惑为什么表达式产生的结果与 -- 第二个在末尾包含一个值不同。我错过了什么?x[2:3]
x[1+1:3]
NA
答:
15赞
plannapus
6/7/2014
#1
因为运算符优先于所以 is really (即 ) 而不是 。因此,要更改定义的运算符优先级的执行顺序,请使用括号:
+
1+1:3
1+(1:3)
2:4
2:3
()
您可以在帮助文件中查看运算符的优先顺序。以下是相关部分:?Syntax
定义了以下一元运算符和二元运算符。它们按优先级组(从高到低)列出。
访问命名空间中的变量
组件/插槽提取
索引 幂(从右到左) 一元 减号和加号 序列运算符 特殊运算符
(包括和 ) 乘、除
(二进制)
加
减::
:::
$
@
[
[[
^
-
+
:
%any%
%%
%/%
*
/
+
-
下一个:如何结束“调试”模式?[复制]
评论