2015-04-19 83 views
0

我有向量:R:命令Y的輸出[1]:Y [3]

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]是什麼意思?結果從哪裏來?

+1

'Y [1]'給你3而'Y [3]'返回6。所以'y [1]:y [3]'是從3到6的序列,即3,4,5,6。請參閱'?「:」'你得到不同結果的原因是因爲在'y [1:3]'中,'1:3'首先被評估,而在'y [1]:y [3]'中,首先評估「y [1]」和「y [3]」,例如真正發生的是':「(y [1],y [3])',R從內向外評估函數。 –

+0

@DavidArenburg非常感謝。 – time

+0

我已經發布了這個答案,因爲它可能對新用戶瞭解R的工作原理有用。 –

回答

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 
相關問題