我有以下类型的嵌套列表:
现状
mylist <- list(
"A",
list(
"B1",
list(
"C_B1",
"w"
),
"B2",
list(
"C_B2",
"x"
),
"B3",
list(
"C_B3_1",
list(
"D_B3_1",
"y"
),
"C_B3_2",
list(
"D_B3_2",
"z"
)
)
)
)
这里列表中的名称实际上是存储为一个模式,该模式似乎是由名称后跟列表或单个元素组成的。该模式可以扩展任意次数,并且在每个列表中,该模式可以重复。
这些数据来自于NLP包中的树形结构。以下是该结构的示例:https://dl.dropboxusercontent.com/u/61803503/Errors/sample.R
期望输出
list(
A = list(
B1 = list(
C_B1 = "w"
),
B2 = list(
C_B2 = "x"
),
B3 = list(
C_B3_1 = list(
D_B3_1 = "y"
),
C_B3_2 = list(
D_B3_2 = "z"
)
)
)
)
## $A
## $A$B1
## $A$B1$C_B1
## [1] "w"
##
##
## $A$B2
## $A$B2$C_B2
## [1] "x"
##
##
## $A$B3
## $A$B3$C_B3_1
## $A$B3$C_B3_1$D_B3_1
## [1] "y"
##
##
## $A$B3$C_B3_2
## $A$B3$C_B3_2$D_B3_2
## [1] "z"
注意,嵌套程度不能保证,只有一个列表和每个列表的第一个元素是该列表中值(第二个元素)的名称。
assign
或臭名昭著的eval(parse(paste0(names(df[[1]])[1],'<- ', df[[1]][[1]][1]))
设置进行一些黑客攻击可能会有所帮助。 - Carl Witthoft