首页 > 解决方案 > R中的键值对数据结构,其中键长度大于1(每个值多个键)

问题描述

是否有一种明智的方法来存储键长度> 1 的键/值对的映射?

到目前为止我所知道的

如果键的长度为 1,我们可以使用命名列表,例如

mylist <- list(a=c("apple", "alphabet", "allegro"),
               b=c("baseball", "brilliant"))


并使用键访问值,就像这样

mylist$a
# [1] "apple"    "alphabet" "allegro" 

但是如果键的长度大于 1,例如,而不是aand b,它们是c('a', 'foo', 'bar')c('b', 'some', 'thing'),R 中是否存在满足这种多对多映射的数据结构,以便键的任何一个元素都将映射到相关值?

标签: r

解决方案


据我了解,您想要的是同一元素的备用键。这更多是设计最佳结构的问题,这是 R 固有的。

一种解决方案是将值分配给每个对应的键,但这会产生冗余,并且值会重复。

另一个更好的解决方案是使用预列表将所有可能的行话翻译成只能用作键的行话。

所以你可以有一个同义词列表,如:

synonyms <- list(jargon1 = "keyword1", jargon2 = "keyword1", jargon3 = "keyword3")

因此 jargon1 和 jargon2 都将指向同一个关键字,然后可以使用该关键字从主列表中获取正确的值。


推荐阅读