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

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

相关推荐
A9better2 分钟前
嵌入式开发学习日志52——二值与计数信号量
单片机·嵌入式硬件·学习
wdfk_prog22 分钟前
[Linux]学习笔记系列 -- [drivers][clk]clk
linux·笔记·学习
黄连升34 分钟前
Python学习第二天,系统学习基础
python·学习
科技林总1 小时前
【系统分析师】5.7 数据挖掘技术
学习
m0_748229991 小时前
帝国CMS后台搭建全攻略
java·c语言·开发语言·学习
weixin_462446231 小时前
PaddleX 3.2 人脸识别实战:自定义人脸库 + CartoonFace 官方案例 Top-K 识别完整指南
开发语言·r语言
Tiger Z2 小时前
《R for Data Science (2e)》免费中文翻译 (第19章) --- Joins(1)
r语言·编程·数据科学
了一梨2 小时前
SQLite3学习笔记6:UPDATE(改)+ DELETE(删)数据(C API)
笔记·学习·sqlite
Tiger Z3 小时前
《R for Data Science (2e)》免费中文翻译 (第18章) --- Missing values
开发语言·r语言
飘若随风3 小时前
JS学习系列-01-什么是JS
开发语言·javascript·学习