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