有没有办法在R中的环境或命名列表中使用任意类型的值作为键?

时间:2011-09-19 08:41:40

标签: r hashmap

我一直在寻找R中正确的哈希映射实现,其功能类似于Python中的地图类型。

经过一些谷歌搜索和搜索R文档,我发现环境和命名列表是我可以使用的唯一选项(真的是这样吗?)。

但两者的问题在于他们只能将字符作为散列的关键,甚至不是数字,更不用说其他类型的东西了。

那么有没有办法将任意事物作为关键?或至少不只是字符。

或者是否有更好的哈希映射实现,我没有找到更好的功能?

提前致谢。

编辑:

我当前的问题:我需要一张地图来存储数据点之间的距离关系。也就是说,地图的关键是元组(p1,p2),值是数字。

我问一个通用问题而不是具体问题的原因是我最近在学习R并且我想知道如何操纵一些最基本的数据结构,而不仅仅是我的问题所指的。因此,我可能需要在将来使用其他东西作为关键,我希望避免在每次碰到它们时都会提出类似的问题而只是微不足道。

编辑2:

我对这个话题提出了很多非常好的建议。看起来我仍然在用Pythonic的方式思考,而不是应该是R的方式。我应该得到更多的R-ly!我认为我的目的很容易通过R中的矩阵来满足。谢谢大家!

1 个答案:

答案 0 :(得分:2)

人们一直在问你一个具体的例子的原因是,大多数问题,其中哈希表是Python中的适当技术,在R中有一个很好的解决方案,不涉及哈希表。

那说,有时候真正的哈希表在R中很有用,我建议你查看R的hash包。它以环境为基础但是让你做很多类似R的矢量工作。这是有效的,我从来没有遇到过它的问题。

请记住,如果你在使用R时使用哈希表并且你的代码运行缓慢或有问题,那么你可以通过找出更像R的做法来获得一些里程它:)