【发布时间】:2018-09-26 13:21:41
【问题描述】:
好吧,也许我以狗、鱼和马为例是愚蠢的。 如果我有 Location 怎么办,即索引是它们所在的位置 1、2 和 3 的位置或其他位置。马 1 可以在位置 2 和 3
index |Location 1|Location 2|Location 3|...
1 |Dog1 |Horse1 |Fish1 |
2 |Horse3 |Fish2 |Horse1 |
3 |Fish2 |Horse2 |Horse3 |
4 |Dog1 |Fish1 |Horse2 |
5 |... |... |... |...
然后我想快速查找我的 data.frame 并找到所有索引值。我希望建立一个位置 1、位置 2 和位置 3 的字典。然后我可以输入 locatio1['dog1'] 并获取位置 1 中 dog1 的所有索引值。
在 python 中,我会构建一个 location1 的字典并拥有
location1_dict = {dog1 : [1, 4], Horse3 : [2], Fish2 : [3]}
location2_dict 等也是如此。
无论如何,r 中是否有一种有效的方法可以快速查找 data.frame。想象一下我有 10^6 行
【问题讨论】:
-
试试
df$index[df$Location1 == "dog1"],假设你的查找表是df -
R 中你想要的是一个列表(“字典”),其中包含每个位置的列表,并且每个包含索引值的命名向量(命名为现有位置列中的每个现有值) .然后,您将能够通过调用
thedictionary$location1$dog等获取所需的信息。使用which()函数获取每个位置中每个值的索引。然后你需要两个嵌套的 for 循环或者purrr::map* 类别函数。
标签: r performance lookup