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

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

相关推荐
虾球xz1 小时前
游戏引擎学习第268天:合并调试链表与分组
c++·学习·链表·游戏引擎
Y3174292 小时前
Python Day23 学习
python·学习
song_ly0013 小时前
深入理解软件测试覆盖率:从概念到实践
笔记·学习·测试
DIY机器人工房3 小时前
[6-2] 定时器定时中断&定时器外部时钟 江协科技学习笔记(41个知识点)
笔记·stm32·单片机·学习·江协科技
海尔辛4 小时前
学习黑客5 分钟小白弄懂Windows Desktop GUI
windows·学习
烟雨迷5 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
@十八子德月生5 小时前
8天Python从入门到精通【itheima】-1~5
大数据·开发语言·python·学习
Clockwiseee7 小时前
文件上传总结
运维·服务器·学习·文件上传
苜柠7 小时前
Wpf学习片段
学习
欢乐熊嵌入式编程8 小时前
智能手表固件升级 OTA 策略文档初稿
嵌入式硬件·学习·智能手表