我有矢量:
y=c(3,7,6,-1,2,4,7,5)
当我运行代码时
y[1]:y[3]
我得到了输出:
[1] 3 4 5 6
但我不明白代码y[1]:y[3]
及其输出的含义是什么。
当我试图获得y
向量的前三个观察时,我得到了它。我现在知道得到前三个观察结果,命令是y[1:3]
。
但y[1]:y[3]
是什么意思?结果来自哪里?
答案 0 :(得分:1)
y[1]
返回3
y[1]
## [1] 3
而y[3]
返回6。
y[3]
## [1] 6
所以y[1]:y[3]
是从3到6的序列,即
3:6
## [1] 3 4 5 6
请参阅?":"
您获得不同结果的原因是因为在y[1:3]
中,首先评估1:3
,而在y[1]:y[3]
,y[1]
和y[3]
正在评估首先评估,例如真正发生的是
`:`(y[1], y[3])
## [1] 3 4 5 6
和R从里到外评估函数,以这个简单的例子来说明
sd(mean(1:10))
## [1] NA
mean(sd(1:10))
## [1] 3.02765