stringsplit输出为新的colnames

use*_*940 3 r

我想为我的数据框创建新的colnames,MirAligner包括_原始colnames中第一个之前的部分.这是我试过的:

unlist(strsplit(as.character(colnames(MirAligner)),'_',fixed=TRUE))
Run Code Online (Sandbox Code Playgroud)

列名

head(colnames(MirAligner))
[1] "na-008_S52_L003_R1_001.mir.fa.gz"  "na-014_S99_L005_R1_001.mir.fa.gz" "na015_S114_L005_R1_001.mir.fa.gz" [4] "na-015_S50_L003_R1_001.mir.fa.gz"  "na-018_S147_L007_R1_001.mir.fa.gz" "na020_S162_L007_R1_001.mir.fa.gz"
Run Code Online (Sandbox Code Playgroud)

预期产量:

na-008 na-014 na015
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以用 sub

sub('_.*', '', str1)
#[1] "na-014" "na015"  "na-015" "na-018" "na020" 
Run Code Online (Sandbox Code Playgroud)

数据

str1 <- c("na-014_S99_L005_R1_001.mir.fa.gz", 
          "na015_S114_L005_R1_001.mir.fa.gz", 
          "na-015_S50_L003_R1_001.mir.fa.gz",  
          "na-018_S147_L007_R1_001.mir.fa.gz", 
          "na020_S162_L007_R1_001.mir.fa.gz")
Run Code Online (Sandbox Code Playgroud)