r - 如何使用 lapply 和 dplyr::filter 函数遍历列表?
问题描述
我有两个数据框 x 和 y,每个都包含 22 条染色体的信息,我想从每个染色体中提取 uniqID 的交集。我尝试了以下方法,但出现错误:
chromosome <- 1:22
list1 <- lapply(chromosome, function(x) x %>% filter(chr == chromosome) %>% select(uniqID))
list2 <- lapply(chromosome, function(y) y %>% filter(chr == chromosome) %>% select(uniqID))
list3 <- intersect(list1, list2)
Error in UseMethod("filter_") :
no applicable method for 'filter_' applied to an object of class "c('integer', 'numeric')"
谁能指出可能是什么原因?也许我滥用了 lapply 功能。
解决方案
尝试以下操作:
list3 <- lapply(chromosome, function(p)
intersect(x$uniqID[x$chr == p], y$uniqID[y$chr == p]))
在这里,我们找到了在和的每个值中uniqID
都存在的共同点。x
y
chromosome
推荐阅读
- java - 集成 WSO2 IdentityServer 和 WSO2 API 管理器
- ansible - 检查循环内的inventory_hostname
- json - Visual Basic - HTTPClient 和 API 请求问题
- cassandra - nodetool 清理后磁盘空间使用量增加 - Apache Cassandra
- html - 如何正确编码 HTML 中的搜索栏以放入 Chrome 自定义搜索引擎?
- sapui5 - 即使没有扩展点,如何增强标准 FIORI 应用程序
- angular - 配置 kendo-list-view 以显示在有角度的网格中
- vb.net - 如何在自定义 ToolStripItem 中显示菜单文本?
- node.js - 使用 firebase-admin 发送主题通知
- javascript - 无缝播放新的 CSS 动画