如何创建嵌套在另一个列表下的列表?

How to create a list that is nested under another list?

提问人:Hanjiong 提问时间:6/6/2023 最后编辑:Konrad RudolphHanjiong 更新时间:6/6/2023 访问量:36

问:

我正在尝试制作一个嵌套列表,该列表位于四列数据框中的另一个列表下。这是我的数据帧(总共有 661,599 行)的片段。

df:

调节器 TG型 恐鸟 可能性
AATF公司 RYR1型 0.00685 0.5924
AATF公司 IRF2型 0.02616 0.8229
AATF公司 SCIMP公司 0.04981 0.0819
AATF公司 GLO1型 0.04546 0.5160
ABCA1型 A1CF型 0.52321 0.6133
ABCA1型 WASHC4型 0.99986 0.9823
ABCA1型 STPG4系列 0.99921 0.6293
ABCA1型 IGSF23型 0.53167 0.8716

我需要格式,因为我正在使用的 r 包需要特定的列表格式才能实际计算出我需要的结果。

我想要实现的结果如下所示:Expected format其中最外层的列表来自“调节器”列,其中该列表在每个“调节器”下嵌套了两个列表,即“tfmode”和“likelihood”。“likelihood”来自“可能性”列,而“tfmode”是包含“TG”和“MOA”的列表。

#attempt number 1
first_list <- split(df, df$Regulator)
second_list <- lapply(first_list, function(x) x[!names(x) %in% c("Regulator")])

results from my attempt number one

#attempt number two
another_list <- list(TFMODE = list(df$`TG`, df$MOA), likelihood = df$likelihood)

results from my attempt number two

我觉得从第一次尝试开始工作会更容易,所以这是我的问题,请随时回答其中任何一个,我会努力解决它:

  1. 如何访问嵌套在每个监管机构下的列表中的数据帧列(TG 和 MOA)?我认为 for 循环可能是我拥有的海量数据帧的答案,但我不知道如何访问每个调节器内部的列。

    我试过了:但结果都一样second_list[["ABCA1"$TG]]second_list[1][2]$<NA> NULL

  2. 如何在每个监管机构(已经是一个列表)下将三列(静止数据帧)带到一个列表中?

任何意见或建议都非常感谢,谢谢!

r 数据帧 列表 嵌套列表

评论

1赞 Konrad Rudolph 6/6/2023
(1) 嵌套列表访问:second_list$AATF$TG
0赞 I_O 6/6/2023
您可能会发现包 {data.tree} 很有帮助,无论是从表格到分层数据(“树”)的转换还是返回,以及遍历/操作树:cran.r-project.org/web/packages/data.tree/vignettes/...

答: 暂无答案