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

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

相关推荐
程序员东岸1 天前
避坑修链表:从顺序表到单链表的那点事儿(含可跑示例与小项目串联)
数据结构·笔记·学习·程序人生·链表
future14121 天前
C++ 学习日记
开发语言·c++·学习
禁默1 天前
机器学习基础入门(第五篇):半监督学习与强化学习
人工智能·学习·机器学习
懒羊羊不懒@1 天前
算法入门数学基础
c语言·数据结构·学习·算法
zhonghaoxincekj1 天前
晶体管的定义,晶体管测量参数和参数测量仪器
功能测试·单片机·学习·测试工具·单元测试·制造
从前慢,现在也慢1 天前
(3)Bug篇
学习·bug·测试
努力努力再nuli1 天前
学习华为昇腾AI教材图像处理原理与应用部分Day1
图像处理·人工智能·学习
Freya冉冉1 天前
【PYTHON学习】推断聚类后簇的类型DAY18
python·学习·聚类
壹号用户1 天前
python学习之可迭代对象&迭代器对象
python·学习
虚行1 天前
Python学习入门
开发语言·python·学习