我有一个包含Gene Symbol配件的微阵列平台文本文件列表。我使用以下代码修剪Gene Symbols。
p[[1]]<- data.frame(sapply(p[[1]], function(x) sub("/.*", "", x)))
p[[1]]<- data.frame(sapply(p[[1]], function(x) sub("-.*", "", x)))
p[[1]]<- data.frame(sapply(p[[1]], function(x) sub("\\..*", "", x)))
p[[1]]<- data.frame(sapply(p[[1]], function(x) sub("\\s", "", x)))
p[[2]]<- data.frame(sapply(p[[2]], function(x) sub("/.*", "", x)))
p[[2]]<- data.frame(sapply(p[[2]], function(x) sub("-.*", "", x)))
p[[2]]<- data.frame(sapply(p[[2]], function(x) sub("\\..*", "", x)))
p[[2]]<- data.frame(sapply(p[[2]], function(x) sub("\\s", "", x)))
如何在两行中简化这些代码?非常感谢任何想法。
使用等同于逻辑OR
的正则表达式管道运算符:
p[[1]] <- data.frame(sapply(p[[1]], function(x) sub("/.*|-.*|\\..*|\\s", "", x)))
p[[2]] <- data.frame(sapply(p[[2]], function(x) sub("/.*|-.*|\\..*|\\s", "", x)))