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

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

相关推荐
yangyanping201086 小时前
Go语言学习之对象关系映射GORM
jvm·学习·golang
网络工程小王6 小时前
【Transformer架构详解】(学习笔记)
笔记·学习
倒酒小生8 小时前
今日算法学习小结
学习
醇氧8 小时前
【学习】【说人话版】子网划分
学习
不灭锦鲤9 小时前
网络安全学习(面试)
学习·安全·web安全
世人万千丶10 小时前
Flutter 框架跨平台鸿蒙开发 - 鸿蒙版本五子棋游戏应用
学习·flutter·游戏·华为·harmonyos·鸿蒙
Aktx20FNz10 小时前
一文学习 Spring AOP 源码全过程
java·学习·spring
Jay Kay10 小时前
生成式推荐模型学习记录part1
学习
正经教主12 小时前
【docker基础】0、系统学习docker之总计划
学习·docker·容器
不知名的老吴13 小时前
计算机基础第一阶段:核心基础学习
学习