如何在R中高效操作不规则嵌套列表内容
需求:优雅处理不规则嵌套的汽车零部件列表
我现在在处理一个包含汽车零部件数据的嵌套列表,示例代码如下:
Partslist <- setNames(list(setNames(vector(mode="list", 5), paste("L", 3, "_",c("type", "year", "parts available", "last update", "make"), sep=""))), "Partslist") Partslist$Partslist$L3_make <- setNames(vector(mode="list", 2), c("BMW", "Toyota")) Partslist$Partslist$L3_make$BMW$Engine <-setNames(vector(mode="list", 6), c("L1_type", "L1_year", "L1_parts available", "L1_last update", "L1_components", "L1_status")) Partslist$Partslist$L3_make$BMW$Powertrain<-setNames(vector(mode="list", 6), c("L1_type", "L1_year", "L1_parts available", "L1_last update", "L1_components", "L1_status")) Partslist$Partslist$L3_make$Toyota$Engine <-setNames(vector(mode="list", 6), c("L1_type", "L1_year", "L1_parts available", "L1_last update", "L1_components", "L1_status")) Partslist$Partslist$L3_make$Toyota$other <-setNames(vector(mode="list", 6), c("L1_type", "L1_year", "L1_parts available", "L1_last update", "L1_components", "L1_status"))
核心挑战在于这个列表结构不规则,无法预先知晓各个分支的嵌套深度。我需要一种可扩展的方法来选择和操作嵌套列表各层级的数据,比如更新价格、数量等字段。
目前我想到一个虽易实现但不够优雅的方案:构造操作的字符串表达式,再使用eval(parse(text=""))执行,示例如下:
target.string <- "Autoparts$L3_make$BMW$L2_components$Engine§L1_type" parts.data<-"hybrid 3i" eval(parse(text=paste("target.string", "<-", parts.data, sep="")))
但我不想采用这种方式,希望得到更优的解决方案。
内容的提问来源于stack exchange,提问作者Allrounder
相关产品推荐
相关产品推荐

