gpt4 book ai didi

r - 嵌套列表赋值 R

转载 作者:行者123 更新时间:2023-12-04 10:58:37 24 4
gpt4 key购买 nike

我有以下类型的列表

categories = list(
c("Women","Clothing", "Jeans"),
c("Women","Clothing", "Sweaters"),
c("Men","Accessories", "Belts"),
c("Women", "Accessories", "Jewelry" ))

我想解析这个列表并创建一个列表列表以在 JSON 中导出,它应该具有以下结构:
Women={
Clothing= {
Jeans{},
Sweaters{}
},
accesories={
Jewleery{}
}
},
Men ={
Accessires={
Belts={}
}

所以它应该遍历列表中包含的字符向量的每个元素,并检查最终列表中是否有这样的元素,如果没有它应该附加它。它应该在适当的级别附加元素。例如,如果 Clothing 是 Woman 的第二个元素,则它应附加到最终列表的 Women 列表中。或者,如果毛衣是 Women.Clothing 的第三个元素,它应该附加最终列表的 Women 列表的 Clothing 列表。

如果该元素已经存在于给定级别,则不应追加,而是应转到 char 向量中的下一个元素。

在输入 lsit 的字符向量中,第一个元素总是级别 1,第二级 2,第三级 3 等等。

它应该递归完成,我尝试了几次,但我不知道如何分配给嵌套列表,特别是我需要进行嵌套分配。

最佳答案

我将数据制成矩阵,转置,然后是数据框:

x <- data.frame(t(vapply(categories, identity, character(3))), stringsAsFactors = F)

然后 split ,和lapply。如果您有 3 个以上的级别,则可以递归执行此操作:
lapply(split(x, x$X1), function(df) {
lapply(split(df, df$X2), function(df) {
lapply(split(df, df$X3), function(x) list())
})
})

关于r - 嵌套列表赋值 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58995014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com