You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言基于自定义函数为数据框列表批量新增intragenic列

实现方案

符合需求的一行代码

你可以直接用lapply遍历列表中的每个数据框,结合你写的flag_annot函数完成新增列操作:

grange_list <- lapply(grange_list, function(df) cbind(df, intragenic = sapply(df$annotation, flag_annot)))

如果需要结合你提到的annotation列提取方法和mapply实现,写法如下:

grange_list <- mapply(cbind, grange_list, intragenic = lapply(lapply(grange_list,'[',,'annotation'), function(x) sapply(x, flag_annot)), SIMPLIFY = FALSE)

更简洁的优化写法

其实不需要单独自定义函数也可以实现需求,直接用向量化匹配,代码更简洁运行效率更高:

grange_list <- lapply(grange_list, function(x) transform(x, intragenic = as.integer(grepl("UTR|Intron|Exon", annotation, ignore.case = T))))

运行后列表里的每个数据框都会新增intragenic列,annotation列包含UTR/Intron/Exon任意一种的取值为1,其余为0。

内容的提问来源于stack exchange,提问作者moth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:45:03