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

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

相关推荐
黄毛火烧雪下24 分钟前
React 深入学习理解
前端·学习·react.js
Tatalaluola3 小时前
【《游戏编程模式》实战04】状态模式实现敌人AI
学习·游戏·unity·c#·状态模式
9命怪猫6 小时前
AI大模型-提示工程学习笔记5-零提示
人工智能·笔记·学习·ai·提示工程
生如夏花℡8 小时前
JAVA学习记录3
java·学习·idea
shaxin观yin8 小时前
python反序列化+沙箱逃逸++js+redis
python·学习·https
高 朗8 小时前
【GO基础学习】项目日志zap Logger使用
服务器·学习·golang·日志·zap
LLLuckyGirl~11 小时前
计算机网络学习
网络·学习·计算机网络
紫云_Zyun11 小时前
JAVA开发学习Day8
java·开发语言·学习·vue
Spcarrydoinb11 小时前
python学习笔记—14—函数
笔记·python·学习
PyAIGCMaster11 小时前
docker学习记录:创建python环境,使用vscode连接远程docker环境,使其访问同为docker镜像的mongodb的设置。
学习·docker·容器