使用带有grep函数R的for循环

时间:2017-04-27 16:44:22

标签: r for-loop grep

我正在尝试编写一个聚合某些基因的for循环。这是我的代码:

for (i in 1:10) {

  cluster <- names(pheat.cut.map[grep(i, pheat.cut.map)])

  print(cluster)

  assign(paste("cluster", i, sep=""), cluster)

  cat("\n")

}

它适用于除1之外的所有事物。循环计算集群1和集群10中的基因。任何建议??

1 个答案:

答案 0 :(得分:1)

尝试:

 cluster <- names(pheat.cut.map[grep(paste0(i, '$'), pheat.cut.map)])

这会生成一个正则表达式,意味着1包含最后的任何内容。当你正在寻找1

时,这将排除de 10值

您还可以使用paste0('^', i, '$')来表示'之前没有任何事情',以避免在您寻找1时将grep值设置为11,111,12;

grep(paste0(1, '$'), 1:11)
[1] 1 11

grep(paste0('^', 1, '$'), 1:11)
[1] 1