R語言——雜湊表
前言:
在 R 語言中有個包——hash 包提供了我們需要的雜湊結構,本文主要介紹該 hash 包的使用。
(使用之前先 install.packages(“hash”) 進行安裝)
其實,資料框也可以實現雜湊表的功能,但是效率不高,操作也不方便。
另外,曾經出現過 rdict 包,使用起來就像 Python 裡面的字典一樣好用,詳情請見:rdict: A hash table for R using skip lists。但是好像後來被 CRAN 取消了,也有可能是把它合併到其它包裡面去了,知道的朋友有勞告知一下。
正文:
雜湊表的建立和元素的新增:
## 方法一:直接建立一個hash物件
> h = hash()
## 方法二:在建立的時候新增元素
> h = hash(keys = c('a','b'), values = c(2,3))
> h
<hash> containing 2 key-value pair(s).
a : 2
b : 3
## 方法三:鍵值對可用等號賦值
> h = hash('a'=2, 'b'=3)
> h
<hash> containing 2 key-value pair(s).
a : 2
b : 3
## 方法四:建立hash物件以後再新增元素
> h = hash()
> h$'c' = 4
> h
<hash> containing 1 key-value pair(s).
c : 4
## 方法五:最常用的新增元素的方法
> h = hash()
> .set(h, keys = 'd', values = 5)
> h
<hash> containing 1 key-value pair(s).
d : 5
註釋:方法四不能用於迴圈輸入,因為 ‘$’ 的字尾不能是變數。而方法五不僅可以一次新增多對鍵值,而且允許 keys 是變數。
雜湊表的清空和元素的刪除:
## 方法一:清空雜湊表
> h = hash(c('a','b'), c(2,3))
> clear(h)
> h
<hash> containing 0 key-value pair(s).
NA : NULL
## 方法二:刪除鍵值對
> h = hash(c('a','b'), c(2,3))
> del('a', h) ## 等價於 delete('a', h)
> h
<hash> containing 1 key-value pair(s).
b : 3
雜湊表的查詢:
## 方法一:利用index(索引)
> h = hash('a' = c(2,3,4), 'b' = 5)
> h
<hash> containing 2 key-value pair(s).
a : 2 3 4
b : 5
> h['a']
<hash> containing 1 key-value pair(s).
a : 2 3 4
> h[['a']]
[1] 2 3 4
> h[['a']][2]
[1] 3
## 方法二:轉成列表
> h = hash('a' = c(2,3,4), 'b' = 5)
> as.list(h)
$a
[1] 2 3 4
$b
[1] 5
> as.list(h)$a[2]
[1] 3
## 方法三:利用 '$'
> h = hash('a' = c(2,3,4), 'b' = 5)
> h$'a'
[1] 2 3 4
> h$'a'[2]
[1] 3
## 方法四:利用 values() 查詢值
> h = hash('a' = c(2,3,4), 'b' = 5)
> values(h)
$a
[1] 2 3 4
$b
[1] 5
> values(h)$'a'[2]
[1] 3
> values(h, 'a')[2]
[1] 3
## 方法五:查詢鍵
> h = hash('a' = c(2,3,4), 'b' = 5)
> has.key('a', h)
a
TRUE
> keys(h)
[1] "a" "b"
雜湊表的其它方法:
> h = hash('a' = 2, 'b' = 3)
> is.hash(h) ## 是否是 hash 物件
[1] TRUE
> is.empty(h) ## 是否為空
[1] FALSE
> length(h) ## 雜湊表的長度
[1] 2
> h2 = copy(h) ## 雜湊表的拷貝
> h2
<hash> containing 2 key-value pair(s).
a : 2
b : 3
關於 R 語言 hash 包的更多內容請見:Package ‘hash’。
轉載請註明出處,謝謝!(原文目錄:http://blog.csdn.net/Bone_ACE/article/details/47821589)
相關文章
- 資料結構雜湊表(c語言)資料結構C語言
- 雜湊表(雜湊表)詳解
- 雜湊表(雜湊表)原理詳解
- 6,雜湊(perl語言筆記)筆記
- C語言實現的資料結構之------雜湊表C語言資料結構
- 雜湊表
- 【尋跡#3】 雜湊與雜湊表
- 字串雜湊表字串
- 6.7雜湊表
- 查詢(3)--雜湊表(雜湊查詢)
- 深入理解雜湊表(JAVA和Redis雜湊表實現)JavaRedis
- 雜湊表應用
- 雜湊表的原理
- 實現雜湊表
- 淺談雜湊表
- 符號表與雜湊表符號
- 幾道和雜湊(雜湊)表有關的面試題面試題
- JAVA 實現 - 雜湊表Java
- 【閱讀筆記:雜湊表】Javascript任何物件都是一個雜湊表(hash表)!筆記JavaScript物件
- 雜湊技術【雜湊表】查詢演算法 PHP 版演算法PHP
- 【資料結構與演算法學習】雜湊表(Hash Table,雜湊表)資料結構演算法
- r語言R語言
- 資料結構——雜湊表資料結構
- freeswitch APR庫雜湊表
- 談談面試--雜湊表系列面試
- 雜湊表(Hash)的應用
- 雜湊表的一點思考
- 【R語言入門】R語言環境搭建R語言
- 資料結構之「雜湊表」資料結構
- 雜湊表的兩種實現
- 從Dictionary原始碼看雜湊表原始碼
- 雜湊表知識點小結
- iOS雜湊表快取窺探iOS快取
- 演算法學習-雜湊表演算法
- PHP雜湊表碰撞攻擊原理PHP
- 資料結構 - 雜湊表,初探資料結構
- 雜湊表hashtable課堂筆記筆記
- C#雜湊表的例項C#