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

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

相关推荐
2301_802651081 小时前
imx6ull裸机开发:UART
学习
辣知2 小时前
辣知·化智56 良渚神权与夏朝颠覆
学习
dadaobusi2 小时前
学习:三层交换机
学习
笨鸟先飞的橘猫2 小时前
树结构在游戏行业中的应用
学习·游戏
yangmu32033 小时前
从显像管到Micro-LED:屏幕的光之进化
学习·显示器
半生过往4 小时前
前端工程师学习智能体开发(一)
前端·学习·状态模式
m4Rk_6 小时前
【论文阅读】Agent 记忆机制(67):MemPO——用记忆级信用分配训练 Agent 主动管理长程上下文
论文阅读·人工智能·学习·开源·github
下辈子不要当码农6 小时前
ARM学习(1)
学习·arm
東隅已逝,桑榆非晚7 小时前
vector(模拟实现)
c++·笔记·学习
鱼听禅7 小时前
C# 学习笔记-使用 类型化客户端搭建HTTP客户端服务
学习·http·c#·工厂方法模式