Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

stringsplit output as new colnames

Tags:

r

I would like to create new colnames for my dataframe MirAligner consisting of the part before the first _ in the original colnames. This is what I tried:

unlist(strsplit(as.character(colnames(MirAligner)),'_',fixed=TRUE))

Column names

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"

Expected output:

na-008 na-014 na015
like image 381
user2300940 Avatar asked Dec 05 '25 10:12

user2300940


1 Answers

We can use sub

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

data

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")
like image 99
akrun Avatar answered Dec 07 '25 23:12

akrun



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!