R語言-有負下標里才能有零介紹
1、只有負下標里才能有零
先看一個例子
>a<-c(1,2,3,4) >a[-1:1] > a[-1:1]
Error in a[-1:1] : 只有負下標里才能有零
(1)只有負下標里才能有零,在這里的意思為:
a[-1:0] 可行
a[0:4]也可行
a[-1:1]不可行
也就是說要么是負索引到0,或者0到正索引,但不能同時出現(xiàn)正負索引。
(2)a[0]結(jié)果為numberic(0),結(jié)果沒有意義,如
> a[0]+10.9 numeric(0) > a[1]+10.9 [1] 11.9
索引為0,不會得到正確的結(jié)果,但不會報錯。
2、容易混淆的例子
>a<-c(1,2,3,4) >a[2:length(a)-1]
結(jié)果是什么?是2,3嗎?
結(jié)果是:1,2,3
> a[2:length(a)-1] [1] 1 2 3
這是為什么呢,不是取2到長度減1個,也就是2,3嗎?
2.1 分析
(1)length(a)值為4
(2)2:length(a)真實含義為2:4
(3)2:4為一個向量,而不是一個簡單的標記,實際上表示2,3,4
(4)2:length(a)-1,真實含義為向量c(2,3,4)-1,結(jié)果為1,2,3
(5)故最后結(jié)果等同于
> a[c(1,2,3)] [1] 1 2 3
即通過一個向量索引c(1,2,3),取向量a中的值。
2.2 改正
其實要達到期望的效果,正確的式子應(yīng)為:
a[2:(length(a)-1)]
冒號后段要加上括號才對。如果不加括號,則變成了一個向量減去1。加上括號后才表示取除第1個和最后一個元素的向量。
補充:R語言筆記(有關(guān)向量的創(chuàng)建和下標索引)
如下所示:

1、R語言的下標索引是從1開始的
且下標索引為負數(shù)的話表示刪除某個元素
> (x<-seq(from=10,to=20,by=1)) [1] 10 11 12 13 14 15 16 17 18 19 20 > x[-1] [1] 11 12 13 14 15 16 17 18 19 20 > x[c(-1,-2,-3)] [1] 13 14 15 16 17 18 19 20 >
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語言 實現(xiàn)將1對多數(shù)據(jù)與1對1數(shù)據(jù)互換
這篇文章主要介紹了R語言 實現(xiàn)將1對多數(shù)據(jù)與1對1數(shù)據(jù)互換的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

