假設我們要測試兩個向量是否相等,使用==的樸素方法將不可行:
事實上,==是乙個向量化的函式。語句x==y是將函式==()應用到x和y的每一組元素上,得到乙個布林值的向量。
那麼我們可以做什麼呢?一種選擇是結合==的向量化本質,應用函式all():
對==的結果應用all()函式會詢問其所有元素是否全為真,它與詢問x與y是否完全一致有同樣的效果。
甚至更好地是,我們可以簡單地使用identical函式,像這樣:
但要小心,因為正如identical這個詞的字面意思,identical函式判斷的是兩個物件是否完全一樣。看看下面這個r會話:
因此,符號:產生的是整數,而c()產生的是浮點數。但是誰能直接看出來呢?
《R語言程式設計藝術》 第2章 2 0 向量
r語言最基本的資料型別是向量 vector 第1章已經給出了向量的一些例子,本章將詳細介紹向量。首先考察向量與r語言的其他資料型別之間的關係。與c語言家族不同,r語言中,單個數值 標量 沒有單獨的資料型別,它只不過是向量的一種特例。而另一方面,r語言中矩陣是向量的一種特例,這一點與c語言家族相同。接...
R語言程式設計藝術 11 14 15
11.字串操作 a c equator north pole south pole grep pole a 在字串a中搜尋pole nchar a 返回字串a的長度 r語言中的字串末尾沒有空字元null 對於非字元形式就要用到hadley wickham寫的stringr包 paste north ...
R語言程式設計藝術(5)R語言程式設計高階
本文對應 r語言程式設計藝術 第14章 效能提公升 速度和記憶體 第15章 r與其他語言的介面 第16章 r語言平行計算 效能提公升 速度和記憶體 要使r 執行速度更快,有以下建議 通過向量化的方式優化 使用位元組碼編譯等 將 中最消耗cpu的核心部分用編譯型語言編寫,如c或c 將 用某種並行的方式...