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

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

相关推荐
白夜易寒9 分钟前
Docker学习之私有仓库(day10)
学习·docker·容器
淮北49426 分钟前
ros调试工具foxglove使用指南三:在3d空间写写画画(Panel->3D ->Scene entity)
python·学习·3d·机器人
Biomamba生信基地2 小时前
R语言入门课| 04 R语言基本函数
开发语言·r语言·生信
山河君2 小时前
音频进阶学习二十四——IIR滤波器设计方法
学习·算法·音视频·信号处理
Vic·Tory3 小时前
Go语言学习笔记
笔记·学习·golang
吴梓穆3 小时前
UE5学习笔记 FPS游戏制作28 显式玩家子弹数
笔记·学习·ue4
KevinRay_3 小时前
从零开始学习SQL
数据库·学习·mysql
虾球xz4 小时前
游戏引擎学习第195天
c++·学习·游戏引擎
Stardep5 小时前
算法学习11——滑动窗口——最大连续1的个数
数据结构·c++·学习·算法·leetcode·动态规划·牛客网
东京老树根6 小时前
SAP 学习笔记 - 系统移行业务 - MALSY(由Excel 移行到SAP 的收费工具)
笔记·学习