r - if/else grepl "参数长度为零"
问题描述
我想对位于列表中的多个数据帧执行一组操作(在 R 中)。特别是,我为每一个创建了一个“库”列,然后用于确定要执行哪种过滤操作。这是实际的代码:
sampleList <- list(RNA1 = "data/not_processed/dedup.Bp1R4T2_S2.txt",
RNA2 = "data/not_processed/dedup.Bp1R4T3_S4.txt",
RNA3 = "data/not_processed/dedup.Bp1R5T2_S1.txt",
RNA4 = "data/not_processed/dedup.Bp1R5T3_S2.txt",
RNA5 = "data/not_processed/dedup.Bp1R14T5_S1.txt",
RNA6 = "data/not_processed/dedup.Bp1R14T6_S1.txt",
RNA7 = "data/not_processed/dedup.Bp1R14T6_S2.txt",
RNA8 = "data/not_processed/dedup.Bp1R14T7_S2.txt",
RNA9 = "data/not_processed/dedup.Bp1R14T8_S3.txt",
RNA10 = "data/not_processed/dedup.Bp1R14T9_S3.txt",
RNA11 = "data/not_processed/dedup.Bp1R14T9_S4.txt",
DNA1 = "data/not_processed/dedup.dna10_1_S4.txt",
DNA2 = "data/not_processed/dedup.dna10_2_S5.txt",
DNA3 = "data/not_processed/dedup.dna10_3_S6.txt",
DNA4 = "data/not_processed/dedup.dna50_1_S1.txt",
DNA5 = "data/not_processed/dedup.dna50_2_S2.txt",
DNA6 = "data/not_processed/dedup.dna50_3_S3.txt",
DNA7 = "data/not_processed/dedup.dna50_pcrcocktail_S7.txt")
batch <- lapply(names(sampleList),function(mysample){
aux <- read.table(sampleList[[mysample]], col.names=c(column1, column2, ..., ID, library, column4, etc...))
aux %>% mutate(library = mysample, R = Fw_ref + Rv_ref, A = Fw_alt + Rv_alt) %>% distinct(ID, .keep_all=T)
if (grepl("DNA", aux$library)){
aux %>% filter(aux$R>1 & aux$A>1)
} else {
aux %>% filter((aux$R+aux$A)>7 & aux$Fw_ref>=1 & aux$Rv_ref>=1 & aux$Fw_alt>=1 & aux$Rv_alt>=1)
}
aux
})
batch_file <- do.call(rbind, batch)
write.table(batch_file, "data/batch_file.txt", col.names = T, sep = "\t")
库列的可能值是 DNA1 到 DNA7,RNA1 到 11。我也尝试使用“char”%in%,但它给出了同样的问题:
if (grepl("DNA", aux$library)) { 中的错误:参数长度为零
似乎 if 条件无法识别库中的值。但是,当我尝试在 batch_file 上应用 if/else 条件时(未过滤,基本上是用这段代码获得的,没有 if/else 部分)它工作得很好。
提前谢谢了。
解决方案
推荐阅读
- vee-validate - 如何阻止在 Vue V-validate 表单中将字符和字母输入到仅限数字的输入中
- visual-studio-code - 我的 AppData/Roaming/Code 文件夹(对于 Visual Studio Code)中的 Cache 和 CachedData 文件夹中包含什么?
- arrays - 如何有效地将 OleVariant 数组复制到我自己的结构中?
- python - 是否有更有效的方法来检索包含列表中值的列表列的行?(子集、联合或超集)
- spring-cloud-dataflow - SPRING CLOUD 数据流服务器
- swiftui - SwiftUI 和 tvOS:adjustsImageWhenAncestorFocused
- node.js - 处理在 Node Js 和 Mongo DB 中查找和更新相同资源的并发请求?
- android - 单击“在 Play 商店应用中打开”时出现“无效的动态链接”firebase 错误,尽管未在应用中使用任何动态链接
- javascript - 如何在 React js 中使用 forEach
- python - 有没有办法上传/压缩整个 anaconda 环境并使用 anaconda 重新创建它?