如何简化R中一行中列表的代码?

问题描述 投票:0回答:1

我有一个包含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)))

如何在两行中简化这些代码?非常感谢任何想法。

r list function sapply
1个回答
0
投票

使用等同于逻辑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)))
© www.soinside.com 2019 - 2024. All rights reserved.