使用列表作为列表的键

时间:2017-07-12 17:14:06

标签: r

无论如何可以使用list作为列表的键吗?我喜欢以下的工作:

lst <- list()
lst[[ list("a", 1:2) ]] <- list(name = "first item", id = 1)
## Error in lst[[list("a", 1:2)]] <- list(name = "first item", id = 1) : 
##  invalid subscript type 'list'

我们的想法是创建一个包含列表键的查找表。简单的解决方案是使用哈希作为键(例如fastdigest),但我想知道是否没有任何直接解决方案?

示例:

lst <- list()
lst[[ list(V1 = "a",  V2 = 1:2, V3 = NULL) ]] <- list(name = "first item", id = 1)
lst[[ list(V1 = "a", V2 = 1:2, V3 = "lorem ipsum") ]] <- list(name = "second item", id = 2)
lst[[ list(V1 = "b", V2 = 3, V3 = "") ]] <- list(name = "third item", id = 3)

# calling it:
lst[[ list(V1 = "b", V2 = 3, V3 = "") ]]
## list(name = "third item", id = 3)

使用哈希的基本问题是我还希望能够将此数据结构反向转换为&#34; flat&#34;列表,例如

list(V1 = "a",  V2 = 1:2, V3 = NULL, name = "first item", id = 1)

并且使用哈希,为了做到这一点,我需要分别存储密钥哈希字典以便能够重新创建它们等。它还需要定义我自己的,非常复杂的类和访问它们的方法。所以我问是否没有直接解决方案,即使用列表作为密钥?

0 个答案:

没有答案