2011-09-19 32 views
2

我一直在尋找R中散列映射的正確實現,其功能類似於Python中的映射類型。有沒有辦法使用任意類型的值作爲R中的環境或命名列表中的鍵?

經過一些Google搜索和搜索R文檔後,我發現環境和命名列表是我可以使用的唯一選項(真的如此嗎?)。

但是兩者的問題在於,他們只能將字符作爲哈希的關鍵字,而不是數字,更不用說其他類型的東西了。

那麼有沒有辦法使用任意的東西作爲關鍵?或者至少不只是人物。

或者有沒有更好的實現哈希映射,我沒有找到更好的功能?

在此先感謝。

編輯:

我現在的問題:我需要一張地圖來存儲數據點之間的距離關係。也就是說,地圖的關鍵是一個元組(p1,p2),值是一個數字。

我問一個通用問題而不是具體問題的原因是我最近在學習R,我想知道如何操縱一些最基本的數據結構,而不僅僅是我的問題涉及到的。所以我可能需要在將來使用其他的東西作爲關鍵,並且我希望避免提出類似的問題,每次碰到它們時只有微小的差別。

編輯2:

我對這個主題有很多非常好的建議。看起來我仍然在思考Pythonic的方式,而不是應該的R方式。我應該得到更多的R-ly!我認爲我的目的很容易通過R中的矩陣來滿足。謝謝大家!

+1

正如在你的更早的(非常相似)的問題的評論http://stackoverflow.com/q/7432248/602276,你能舉個例子說明你正在嘗試做什麼?就特定問題而不是通用問題提供建議將會更容易。如果使用正確的話,data.table'可以做你想做的事情,但是直到我理解你的用例,我纔會知道。 – Andrie

+0

對於你目前的問題,爲什麼不是矩陣?請參閱'dist'函數以瞭解最常用的內置方法。 – Aaron

+0

@Aaron,我不使用矩陣,因爲點是數十個數的向量,矩陣可以有效地代表這種形式的數據,而且沒有太多的代碼? –

回答

2

人們不斷要求您提供具體示例的原因是,大多數散列表是適用於Python的技術的問題在R中有一個很好的解決方案,它不涉及散列表。

也就是說,有一定時候,一個真正的哈希表R中有用的,我建議你檢查出hash包R.它使用環境爲基礎,但可以讓你做了很多的R-像矢量與他們一起工作。這是有效的,我從來沒有遇到過問題。

請記住,如果您在使用R時大量使用散列表,並且您的代碼運行緩慢或出錯,您可以通過計算出更類似R的方式獲得一些里程數這樣做:)

+0

好點。也許我還沒有完全以R爲導向:) –

相關問題