我试图将这个简单的树结构实现为R:
中的列表 1
/ \
2 3
/ \
4 5
我试过的是:
tree <- list(1, list(2, 3, list(4, 5)))
> tree
[[1]]
[1] 1
[[2]]
[[2]][[1]]
[1] 2
[[2]][[2]]
[1] 3
[[2]][[3]]
[[2]][[3]][[1]]
[1] 4
[[2]][[3]][[2]]
[1] 5
这是对的吗?根据我的理解,这棵树看起来像这样:
1
/ \ \
2 3 .
/ \
4 5
更新:
我也试过这个:
tree <- list(1, list(2, c(3, list(4, 5))))
但它看起来也错了
答案 0 :(得分:1)
树只需要节点名称。
tree <- list(data=1,
lchild=list(data=2),
rchild=list(data=3,
lchild=list(data=4),
rchild=list(data=5)))
答案 1 :(得分:1)
考虑db.category.aggregate([
{"$lookup": {
"from": "app",
"localField": "_id",
"foreignField": "_id",
"as": "R"
}},
{"$unwind": "$R"},
{"$project": {
"midEq": {"$eq": ["$M_id", "$R.app_id"]},
"app_id": 1, "app_name": 1
}},
{"$match": {
"$and": [
{"category_id": {"$eq": 6}},
{"midEq": {"$eq": True}}
]}},
{"$project": {
"midEq": 0
}}
])
包。它可以很好地打印嵌套列表的结构:
data.tree
返回:
tree <- list("1" = 1,
"2" = list(2),
"3" = list(3, "4" = list(4), "5" = list(5)))
data.tree::FromListSimple(tree, nodeName = "1")