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

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

相关推荐
Logintern091 小时前
【每天学习一点点】MPI是什么?
学习·mpi·多机训练
fengci.1 小时前
提示词注入学习小结
学习
晓梦林1 小时前
Tools2靶场学习笔记
笔记·学习
paopaokaka_luck2 小时前
基于springboot3+vue3的车间生产管理系统(Echarts图形化分析、BI报表)
java·前端·spring boot·学习·echarts
Canmag 兴隆磁性3 小时前
自动磁场分布测试+镭雕设备 AT-C
学习·永磁材料·磁场分布测试
小小帅呀3 小时前
学习VLA第3天:训练一个最简单的神经网络
人工智能·神经网络·学习
m4Rk_4 小时前
【论文阅读】Agent 记忆机制(50):PACE——按下一步预测价值动态分配历史记忆粒度
论文阅读·人工智能·学习·开源·github
zQ.ii4 小时前
WPF 触发器学习笔记
笔记·学习·wpf
边境悍匪5 小时前
蜗牛学苑 Java 智能体学习 Day28|JavaScript、CSS 布局思维导图复盘
学习
吃好睡好便好5 小时前
取整函数的使用
学习·matlab·生活·取整函数