R语言实用技巧--用get函数配合dplyr包传参

使用场景,今天在做cellchat,需要提取一下几种细胞类型的id。目前的设置是这样。

R 复制代码
sce.all = seurat_obj
Idents(sce.all) = "CAFs"
celltype_sender=c("iCAF","myCAF")

如果正常写代码传参是这样

R 复制代码
sender_ids <- sce.all@meta.data %>% 
    filter(CAFs %in% celltype_sender) %>%
    rownames()

但是如果我想换一种细胞类型,CAFs就也要改,不够简洁。filter函数是不支持以下写法的,什么都筛选不出来

R 复制代码
celltype_sender_idents = "CAFs"
sender_ids <- sce.all@meta.data %>% 
    filter(celltype_sender_idents %in% celltype_sender) %>%
    rownames()

解决方案:

R 复制代码
sce.all = seurat_obj
Idents(sce.all) = "CAFs"
celltype_sender=c("iCAF","myCAF")
celltype_sender_idents = "CAFs"

sender_ids <- sce.all@meta.data %>% 
    filter(get(celltype_sender_idents) %in% celltype_sender) %>%
    rownames()

这样就可以在一开始把变量设置好,在后面优雅的传参了

相关推荐
yuxb7334 分钟前
Docker学习笔记(二):镜像与容器管理
笔记·学习·docker
LFly_ice1 小时前
学习React-9-useSyncExternalStore
javascript·学习·react.js
gmmi2 小时前
嵌入式学习 51单片机(3)
单片机·学习·51单片机
楼田莉子3 小时前
C++算法专题学习——分治
数据结构·c++·学习·算法·leetcode·排序算法
励志不掉头发的内向程序员4 小时前
C++进阶——继承 (1)
开发语言·c++·学习
悠哉悠哉愿意4 小时前
【数学建模学习笔记】机器学习分类:随机森林分类
学习·机器学习·数学建模
悠哉悠哉愿意5 小时前
【数学建模学习笔记】机器学习分类:KNN分类
学习·机器学习·数学建模
四谎真好看5 小时前
Java 学习笔记(进阶篇2)
java·笔记·学习
程序猿炎义5 小时前
【NVIDIA AIQ】自定义函数实践
人工智能·python·学习
小陈phd6 小时前
高级RAG策略学习(四)——上下文窗口增强检索RAG
人工智能·学习·langchain