R 測試向量相等

2021-06-26 13:30:08 字數 742 閱讀 9517

假設我們要測試兩個向量是否相等,使用==的樸素方法將不可行:

> x <- 1:3

> y <- c( 1, 3, 4 )

> x == y

[1]  true false false

發生什麼了?問題在於,我們處理的是向量化。與r中其他運算子一樣,==是乙個函式。事實上,==是乙個向量化的函式。語句x==y是將函式==()應用到x和y的每一組元素上,得到乙個布林值的向量。

那麼我們可以做什麼呢?一種選擇是結合==的向量化本質,應用函式all():

> all(x == y )

[1] false

對==的結果應用all()函式會詢問其所有元素是否全為真,它與詢問x與y是否完全一致有同樣的效果。甚至更好地是,我們可以簡單地使用identical函式,像這樣:

> identical( x, y )

[1] false

注:identical函式判斷的是兩個物件是否完全一樣。

> x <- 1 : 2

> y <- c( 1, 2 )

> x

[1] 1 2

> y

[1] 1 2

> identical( x, y )

[1] false

> typeof( x )

[1] "integer"

> typeof( y )

[1] "double"

注:符號「:」產生的是整數,而c()產生的是浮點數。

《R語言程式設計藝術》 2 10 測試向量相等

假設我們要測試兩個向量是否相等,使用 的樸素方法將不可行 事實上,是乙個向量化的函式。語句x y是將函式 應用到x和y的每一組元素上,得到乙個布林值的向量。那麼我們可以做什麼呢?一種選擇是結合 的向量化本質,應用函式all 對 的結果應用all 函式會詢問其所有元素是否全為真,它與詢問x與y是否完全...

R語言 向量

1 seq 產生有規律的數列,間距省略時預設值為1。例1 seq 10,20,0.5 例2 seq 0,by 0.03,length 15 2 rep 產生有規律的數列,重複第乙個變數若干次。例1 rep 1 3,1 3 例2 rep 1 3,rep 2,3 例3 rep 1 3,length 10...

R語言 向量

向量是以一維陣列的方法管理資料的一種物件型別。可以說向量是r語言中最基本的資料型別,很多演算法函式都是以向量的形式輸入的。向量可以是數值型 字元型 邏輯值型 t f 和複數型。seq產生等距間隔的數列,其基本形式為 seq from 1,to 1,by from to length.out 1 le...