我有一个字符串,由n个子字符串组成。它可以看起来像这样:
string <- c("A_AA", "A_BB", "A_BB_AAA", "B_AA", "B_BB", "B_CC")
这个字符串中的每个子组件都用“_”分隔开来。在这里,第一层由值“A”和“B”组成,第二层由“AA”、“BB”和“CC”组成,第三层由“AAA”组成。更深层次的嵌套也是可能的,解决方案应该扩展到这些情况。嵌套不一定平衡,例如,“A”只有两个子项,而“B”有三个子项,但它还有一个“B”没有的孙子。
本质上,我想要在某种R对象中重新创建此字符串的嵌套结构,最好是一个列表。因此,嵌套列表结构看起来像这样:
list("A" = list("AA", "BB" = list("AAA")),
"B" = list("AA", "BB", "CC"))
> $A
$A[[1]]
[1] "AA"
$A$BB
$A$BB[[1]]
[1] "CCC"
$B
$B[[1]]
[1] "AA"
$B[[2]]
[1] "BB"
$B[[3]]
[1] "CC"
任何对此的帮助都将不胜感激
lengths(x)
代替lapply(x, length)
,并在 "cols" 后面使用do.call(rbind, lapply(splitted, "length<-", cols))
。 - alexis_lazlength
操作时,它将把元素也是列表的元素视为1,而不会计算列表中所有子元素的数量。然而,使用矩阵,您可以执行subset(mat,mat[,1]=="A")
,然后计算任何一列中有多少个na。 - Dean MacGregor