【发布时间】:2022-10-26 00:28:08
【问题描述】:
我有一个包含九个数据帧(称为data)的列表,每个数据帧的长度和内容都不同。但是,与其中大多数一致的是包含我想存储在单独数据框中以供以后使用的信息的列。
这些列如下:
identifiers <- c("Organism Name", "Protein names", "Gene names", "Pathway", "Biological Process")
我想遍历data 的每个元素以检查它是否包含我感兴趣的列,然后将这些列子集为单独的数据框。
我第一次尝试
lapply(data, '[', identifiers]
这样做的问题是,并非所有 dfs 都包含上面列出的所有标识符,因此运行它会返回“选择的未定义列”。
我的下一次尝试是
lapply(data, function(x) if(identifiers %in% x) '[', identifiers)
它返回了 NULL 类的 9 个列表(对应于 9 个原始数据帧)。我认为这种通用方法可以正确执行,但我无法弄清楚。
任何帮助,将不胜感激 :)
【问题讨论】: