从列表中删除子列表

标签 r list for-loop subset

我有 155 个元素的列表,eachc 包含 3 个列表。

下面我做了一个小例子。我只对保留 gene 中的值感兴趣,并尝试在 R 中一次性删除每个元素的第一个和第二个列表!留给我的只有基因中的值(value)观。

test <- list(name="Adipose", desc= "Roche", gene = c("KRT14", "RPE65"))
test1 <- list(name="muscle", desc= "Roche", gene = c("THRSP", "KRT14"))
test2 <- list(name="WBC" , desc= "Roche", gene = c("RBP4", "CCDC80"))
x <- c(test,test1, test2)

如何实现这一目标?

最佳答案

正如您在评论中发布的dput所示,您的实际数据结构是列表的列表。在这种情况下,您可以使用 lapply 来获取您想要的内容:

list <- structure(list(Adipose = structure(list(name = "Adipose", desc = "Roche", genes = c("ACACB", "ACP5", "ACTA1")), .Names = c("name", "desc", "genes")), WBC = structure(list( name = "WBC ", desc = "Roche", genes = c("THRSP", "KRT14", "APOB", "LEP")), .Names = c("name", "desc", "genes"))), .Names = c("Adipose ", "WBC "))

lapply(list, function(x) x[names(x)=="genes"])

#$`Adipose `
#$`Adipose `$genes
#[1] "ACACB" "ACP5"  "ACTA1"    
#
#$`WBC `
#$`WBC `$genes
#[1] "THRSP" "KRT14" "APOB"  "LEP"  

关于从列表中删除子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46586240/

相关文章:

Windows 上 Spectre 和 Meltdown 缓解措施的 R 基准测试

android - 使用recyclerview android过滤男性和女性结果searchview

r - 使用 for 循环将威 bool 观测值保存在矩阵中

没有括号的根/美式期权隐含波动率/R

javascript - 如何渲染隐藏预设轨迹的绘图,即基于列表的 'legendonly'

java - 如何使用迭代器进行替换和计数

c - C 循环 For Vs While Vs goto 的性能

php - 运行一个内部有函数的循环

r - 从列表元素的成对组合构建数据框

html - 使用 List 模拟带有嵌套表格的动态表格 <ul> <li> 仅限 HTML 和 CSS