在R语言中,为什么1:n-1与1:(n-1)的输出结果不同?
R语言中1:n-1与1:(n-1)的输出差异解释
核心原因是运算符优先级:R语言里冒号:的优先级高于减法-,两者的运算顺序完全不同。
拆解运算过程
当n = 4时:
- 对于
1:n-1:- 先执行
1:n,生成序列1 2 3 4 - 再对序列里的每个元素做减1操作,得到
0 1 2 3
- 先执行
- 对于
1:(n-1):- 括号改变了运算顺序,先执行
n-1得到3 - 再执行
1:3生成序列1 2 3
- 括号改变了运算顺序,先执行
代码验证
n <- 4 # 输出 [1] 0 1 2 3 1:n - 1 # 输出 [1] 1 2 3 1:(n-1)
如果不确定运算符优先级,用括号明确运算顺序是最稳妥的方式,避免出现意料之外的结果。
内容的提问来源于stack exchange,提问作者codingxxx
相关产品推荐
相关产品推荐

