2
我刚刚发现R无法做出我认为非常直观的事情。作为试图获得对R更深层次基本把握的初学者,有人可以解释为什么R无法做到这一点吗?R:无法在矢量切片/索引内执行操作
x = c(1,2,3,4,5,6)
y=3
x[4:6]
# 4 5 6 as expected
x[y+1:y+3]
# NA NA NA unintuitive to me
我刚刚发现R无法做出我认为非常直观的事情。作为试图获得对R更深层次基本把握的初学者,有人可以解释为什么R无法做到这一点吗?R:无法在矢量切片/索引内执行操作
x = c(1,2,3,4,5,6)
y=3
x[4:6]
# 4 5 6 as expected
x[y+1:y+3]
# NA NA NA unintuitive to me
您想为括号
x[(y+1):(y+3)]
# [1] 4 5 6
为什么?
y+1:y+3
#[1] 7 8 9
的:
运营商和回收标量的优先级为您提供了错误的指标值。
比较以
(y+1):(y+3)
# [1] 4 5 6
啊我明白了。所以它读取'y + 1:y + 3'为'y +(1:y)+ 3'并且循环给出了'[1 1 1] + [1 2 3] + [3 3 3]''。谢谢! 我认为+优先于:python – Lee88
'×[(Y + 1):(Y + 3)]' –