2011-09-19 31 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为导向:) –

相关问题