我最近开始使用 R,我正在尝试为以下问题找到解决方案:
我有data.frame
几列。其中之一包含文件名以及所需的所有信息。示例:“13_07_26_SpeciesA_Genotype22_Column1Row2”
我想使用名称中的信息创建新列。例如基因型列带有“22”,行列带有“2”等等。
我可以单独执行此操作,grepl
如下gsub
所示:
files <- c("13_12_26_Species_Genotype22_Column1Row2",
"15_12_26_Species_Genotype01_Column2Row5")
weights <- c(20,40)
spreadsheet <- data.frame(files,weights)
GT22 <- grepl("Genotype22", spreadsheet$files)
spreadsheet$GT <- gsub("TRUE","22",GT22)
但是我必须检查来自不同日期等的许多文件中的> 1000个基因型。所以我试图将一个向量与所有可能的基因型进行比较,例如
gt.list <- paste("Genotype",01:1000,sep="")
使用电子表格$files 列,使用类似match()
or的函数apply()
。但我无法让它运行。基因型不按顺序排列,因此我想将“文件”列的每个单元格与我的向量中的所有条目进行比较,然后将所有匹配项写入新列(...22,01,...)。我可以针对不同的信息重写这个函数。
如果有任何帮助,我将不胜感激!