You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言向量索引变量运算不符合预期的原因咨询

滑动窗口索引异常的原因分析

先看你遇到的问题代码:

t <- c(1, 2, 3, 4, 5)
i <- 1
t[i:i + 3]

这段代码返回4而非预期的1,2,3,4,核心原因是R语言的运算符优先级规则::(序列生成运算符)的优先级比+(加法运算符)更高。

所以i:i + 3的执行顺序是先算i:i(也就是1:1),得到单个值1,再执行1 + 3得到4,最后取t[4]自然就是4。

而你用中间变量j的写法:

t <- c(1, 2, 3, 4, 5)
i <- 1
j <- i + 3
t[i: j]

这里先计算j = 1 + 3 = 4,再执行i:j(也就是1:4),所以能正确取到数组的前4个元素。

如果不想用中间变量,也可以给加法部分加括号改变优先级,写法如下:

t[i:(i + 3)]

这样会先计算括号里的i+3得到4,再执行1:4,同样能得到预期结果。

内容的提问来源于stack exchange,提问作者Anton Bocharov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:43:07