gpt4 book ai didi

R:计算嵌套列表的每个子列表中存在多少向量元素

转载 作者:行者123 更新时间:2023-12-04 09:28:25 26 4
gpt4 key购买 nike

我正在处理 R 中的一些数据,并且有一个向量(例如基因列表),我想知道该向量的多少成员出现在列表列表的子列表中(例如,在不同时间点表达的基因列表)。我可以通过检查 x[] %in% y[[]]is.element(x[], y[[]]) 手动执行此操作,但我正在尝试弄清楚如何编写一个 R 函数来为我做这件事,因为我有一些这样的向量和长列表。这是一个玩具示例:

mylist <- list("Hr01" = c("G0295801", "G0295799", "G0293928", "G0293730", "G0293626", "G0293536", "G0293364", "G0291640", "G0291233", "G0290907"), "Hr02" =c ("G0295801", "G0295701", "G0295689", "G0293730", "G0293626", "G0293364", "G0293360", "G0293276", "G0293066", "G0292860", "G0292814", "G0292028", "G0292014", "G0291824"), "Hr03" = c("G0295701", "G0293364", "G0293276", "G0291714", "G0291253", "G0290405", "G0290259", "G0289553", "G0284885"))

checklist <- as.vector(c("G0290907", "G0295701", "G0270472", "G0283625", "G0284885"))

可以得到类似这样的输出(数据框,列:子列表的名称,checklist 的成员有多少出现在 mylist 的子列表中) :

"Hr01" 1
"Hr02" 1
"Hr03" 2

非常感谢任何帮助!

最佳答案

结合 lapplyrbind 应该可以做到。对于每个列表元素,您要计算 list 中子元素的数量,然后简单地将结果组合到一个矩阵中。

do.call(rbind, lapply(mylist, function(x) sum(x %in% checklist)))

[,1]
Hr01 1
Hr02 1
Hr03 2

关于R:计算嵌套列表的每个子列表中存在多少向量元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30358233/

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