【发布时间】:2015-10-07 13:31:42
【问题描述】:
假设我有一个字符向量:
c("A01","A02","B0101","B0102","B02","C010101","C010102",
"C010103","C010201","C010202","C02","C03",...)
它具有以下属性(由于我一般不知道如何解释我的问题,我将使用一些 xml 术语,如“节点”、“父”和“子”):
- 向量的元素是分层的。
- 考虑所有元素都包含在一个“根节点”中;每个元素的前导字母代表“根节点”的第一个“子节点”,后面每两个相邻的数字是前一个的“子节点”和下一个的“父节点”。
- 如向量所示,每个字符串的长度是不确定的,即每个“节点”内的世代数是不确定的。
现在,我想从向量构造一个具有以下属性的列表:
- 每个“父节点”都是一个包含其他列表(“子节点”)的列表。
- 每个列表的名称应与字符串中对应的字母或数字相同(参见下面的示例)。
- 树结构的最后一个后代应该是一个有名字但不一定有任何值的列表。
这是一个基于向量前 5 个元素的示例列表:
a<-list("A"=list("01"=NULL,"02"=NULL),"B"=list("01"=list("01"=NULL,"02"=NULL),"02"=NULL))
>str(a)
List of 2
$ A:List of 2
..$ 01: NULL
..$ 02: NULL
$ B:List of 2
..$ 01:List of 2
.. ..$ 01: NULL
.. ..$ 02: NULL
..$ 02: NULL
我想知道是否有任何 R 函数可以生成我想要的列表,并将向量作为输入;如果没有,如何写一个可以的?
【问题讨论】: