R语言实用技巧--用get函数配合dplyr包传参

使用场景,今天在做cellchat,需要提取一下几种细胞类型的id。目前的设置是这样。

R 复制代码
sce.all = seurat_obj
Idents(sce.all) = "CAFs"
celltype_sender=c("iCAF","myCAF")

如果正常写代码传参是这样

R 复制代码
sender_ids <- [email protected] %>% 
    filter(CAFs %in% celltype_sender) %>%
    rownames()

但是如果我想换一种细胞类型,CAFs就也要改,不够简洁。filter函数是不支持以下写法的,什么都筛选不出来

R 复制代码
celltype_sender_idents = "CAFs"
sender_ids <- [email protected] %>% 
    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 <- [email protected] %>% 
    filter(get(celltype_sender_idents) %in% celltype_sender) %>%
    rownames()

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

相关推荐
真的想上岸啊几秒前
学习STC51单片机27(芯片为STC89C52RCRC)
单片机·嵌入式硬件·学习
杏仁海棠花饼17 分钟前
Vue3(ref与reactive)
前端·学习
ahhhhaaaa-1 小时前
【学习笔记】TCP 与 UDP
笔记·学习·tcp/ip
东京老树根2 小时前
SAP学习笔记 - 开发22 - 前端Fiori开发 数据绑定(Jason),Data Types(数据类型)
前端·笔记·学习
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO2 小时前
Rust学习(1)
javascript·学习·rust
YKPG2 小时前
C++学习-入门到精通【13】标准库的容器和迭代器
c++·学习·stl
百里香酚兰3 小时前
【AI学习笔记】Coze工作流写入飞书多维表格(即:多维表格飞书官方插件使用教程)
笔记·学习·大模型·飞书·pe·coze
钟离墨笺5 小时前
Go语言学习-->编译器安装
开发语言·后端·学习·golang
钟离墨笺6 小时前
Go语言学习-->从零开始搭建环境
开发语言·后端·学习·golang