在 R 中使用 sapply 时如何保留列表的元素名称?

Posted

技术标签:

【中文标题】在 R 中使用 sapply 时如何保留列表的元素名称?【英文标题】:How can I preserve the element names of a list when using sapply in R? 【发布时间】:2020-10-07 20:14:56 【问题描述】:

我有一个名为 diseaseMutation 的函数,它需要在数据帧joint2 上运行多次,每次都有不同的条件。例如,代码的三个副本如下所示:

Colon <- diseaseMutation(joint2, "Colon/Colorectal Cancer")
Bladder <- diseaseMutation(joint2, "Bladder Cancer")
Lung <- diseaseMutation(joint2, "Lung Cancer")

我想使用下面的 lapply 函数对疾病运行循环 diseaseMutation,并将疾病名称保存为每个元素的名称。

results <- lapply(unique(joint2$disease),
                  function(j) diseaseMutation(joint2, j))

如何在运行后应用名称以便将疾病保存为输出名称?

【问题讨论】:

names(results) &lt;- unique(joint2$disease)? @RuiBarradas 非常感谢! 【参考方案1】:

更简单的方法,不需要额外的包

results <- lapply(setNames(nm = unique(joint2$disease)),
                  function(j) diseaseMutation(joint2, j))

【讨论】:

以上是关于在 R 中使用 sapply 时如何保留列表的元素名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何在R中索引列表对象的元素

如何删除此列表中的重复元素?

如何在保留列表名称和值的同时展平一列列表? [r] [重复]

如何遍历R中的列表

将向量从二进制强制转换为“as.numeric”时保留名称?

如何获取在 C++ 中排序后保留的列表元素的指针