gpt4 book ai didi

regex - 如何在 R 中编辑列名?

转载 作者:行者123 更新时间:2023-12-04 16:31:16 26 4
gpt4 key购买 nike

我有一个名为 的变量姓名 ,我想将其设置为矩阵的列名,但在此之前,我需要编辑名为 的变量内的名称。姓名

>name
[722] "TCGA-OL-A66N-01A-12R-A31S-13.isoform.quantification.txt"
[723] "TCGA-OL-A66O-01A-11R-A31S-13.isoform.quantification.txt"
[724] "TCGA-OL-A66P-01A-11R-A31S-13.isoform.quantification.txt"

我只想保留第四个 之前的字母-

预期输出:
  >name
[722] "TCGA-OL-A66N-01A"
[723] "TCGA-OL-A66O-01A"
[724] "TCGA-OL-A66P-01A"

有人会帮我在 R 中实现这个吗?

最佳答案

正则表达式“[”运算符定义了一个字符类,在字符类中,第一个位置的“^”运算符进行否定;

?regex
?sub

sub("^([^-]*[-][^-]*[-][^-]*[-][^-]*)([-].*$)", "\\1", name)
[1] "TCGA-OL-A66N-01A" "TCGA-OL-A66O-01A" "TCGA-OL-A66P-01A"

这比 str_split 方法更简单(IMO)
 sapply( lapply( strsplit(name, "\\-"), "[", 1:4),   
# extracted the first 4 elements from each list element returned by strsplit
paste, collapse="-") # 'collapse' needed rather than 'sep'

#[1] "TCGA-OL-A66N-01A" "TCGA-OL-A66O-01A" "TCGA-OL-A66P-01A"

关于regex - 如何在 R 中编辑列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23918200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com