r - R中的键值对数据结构,其中键长度大于1(每个值多个键)
问题描述
是否有一种明智的方法来存储键长度> 1 的键/值对的映射?
到目前为止我所知道的
如果键的长度为 1,我们可以使用命名列表,例如
mylist <- list(a=c("apple", "alphabet", "allegro"),
b=c("baseball", "brilliant"))
并使用键访问值,就像这样
mylist$a
# [1] "apple" "alphabet" "allegro"
但是如果键的长度大于 1,例如,而不是a
and b
,它们是c('a', 'foo', 'bar')
和c('b', 'some', 'thing')
,R 中是否存在满足这种多对多映射的数据结构,以便键的任何一个元素都将映射到相关值?
解决方案
据我了解,您想要的是同一元素的备用键。这更多是设计最佳结构的问题,这是 R 固有的。
一种解决方案是将值分配给每个对应的键,但这会产生冗余,并且值会重复。
另一个更好的解决方案是使用预列表将所有可能的行话翻译成只能用作键的行话。
所以你可以有一个同义词列表,如:
synonyms <- list(jargon1 = "keyword1", jargon2 = "keyword1", jargon3 = "keyword3")
因此 jargon1 和 jargon2 都将指向同一个关键字,然后可以使用该关键字从主列表中获取正确的值。
推荐阅读
- shell - 在 Jenkins 中编写脚本作为作业时出错
- javascript - JavaScript 帮助 - 单击事件侦听器以激活 1 个元素节点并停用其他元素节点
- python - 我真的不知道文件扩展名 .data
- ruby-on-rails - Ruby on Rails 6 AWS Elastic Beanstalk 部署命令 reload_initctl_for_sidekiq 失败
- mysql - 查询优化的 SQL 技巧
- git - 远程:在 github 上拒绝回购的权限
- reactjs - 是的验证问题:具有各自值的字段仍然说字段是必需的
- solr - 如何使用数据类型且不带任何后缀或前缀来决定 solr 中的动态文件
- git - 如何从我的 github 存储库中删除我的电子邮件
- php - 将自定义 HTML 属性添加到 Grav 生成表单的按钮