我想为我的数据框创建新的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)
我们可以用 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)