我正在處理地圖數據結構,我需要存儲關鍵值對。如何在R中使用地圖?
map[key1]<-value1
map[key2]<-value2
map[key3]<-value3
map[key4]<-value4
我需要獲得基於密鑰的價值。我如何在R中實現這個?
我正在處理地圖數據結構,我需要存儲關鍵值對。如何在R中使用地圖?
map[key1]<-value1
map[key2]<-value2
map[key3]<-value3
map[key4]<-value4
我需要獲得基於密鑰的價值。我如何在R中實現這個?
使用列表,因爲c
構建一個簡單的載體不能處理更多的事情比標量值:
> map = c(key1 = c(1,2,3), key2 = 2, key3 = 3)
> map[["key1"]]
Error in map[["key1"]] : subscript out of bounds
爲什麼這會失敗?因爲map
現在是:
> map
key11 key12 key13 key2 key3
1 2 3 2 3
使用list
代替:
> map = list(key1 = c(1,2,3), key2 = 2, key3 = 3)
> map[["key1"]]
[1] 1 2 3
也可動態擴展:
> map[["key99"]]="Hello You!"
> map
$key1
[1] 1 2 3
$key2
[1] 2
$key3
[1] 3
$key99
[1] "Hello You!"
開始與空map=list()
如果你正在建設一個。
您可以使用一個名爲向量:
map = c(key1 = 1, key2 = 2, key3 = 3)
map[["key1"]]
你可以輕鬆地添加新的:
map[["key4"]] = 4
> map
key1 key2 key3 key4
1 2 3 4
如果地圖將會很大並且速度是一個問題,那麼使用環境而不是列表可能會有所幫助。爲了更快的查找,散列環境被散列,我認爲列表將被線性搜索直到找到匹配的鍵。對於小型案例(和其他案例),您不會注意到時間上的差異,因此列表很好,但如果大小和速度很重要,那麼環境可以提供幫助。 –
你如何得到名單(鍵)的名單? 'map.names'不起作用。 – Rhubarb
'name(map)' - 這是R,不是python。 – Spacedman