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()

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

相关推荐
diegoXie8 小时前
Python / R 向量顺序分割与跨步分割
开发语言·python·r语言
呱呱巨基8 小时前
Linux 进程概念
linux·c++·笔记·学习
yong15858553438 小时前
2. Linux C++ muduo 库学习——原子变量操作头文件
linux·c++·学习
IDIOT___IDIOT9 小时前
KNN and K-means 监督与非监督学习
学习·算法·kmeans
Rousson10 小时前
硬件学习笔记--91 TMR型互感器介绍
笔记·学习
前端 贾公子10 小时前
Vue响应式原理学习:基本原理
javascript·vue.js·学习
Slaughter信仰11 小时前
图解大模型_生成式AI原理与实战学习笔记前四张问答(7题)
人工智能·笔记·学习
2401_8345170712 小时前
AD学习笔记-26 Active Routing
笔记·学习
QiZhang | UESTC12 小时前
学习日记day45
学习
菜鸟‍12 小时前
【论文学习】通过编辑习得分数函数实现扩散模型中的图像隐藏
人工智能·学习·机器学习