我想只获得属于数据框的元素的一部分。
我的数据框有1列,6000行,如下所示:
chr5_122424840_122523745_NM_001136239_mRNA
chr17_38632079_38657854_NM_032865_mRNA
我想获得一个只有
的新数据框NM_001136239
NM_032865
我尝试使用split
然后使用paste
,但它无效,因为它在粘贴时消除了零(NM_1136239而不是NM_001136239)
我也试过stri_sub
和substr
,但NM之前的长度在每一行都不相同。另外gsub
但我不知道该怎么做。
非常感谢你的帮助,我希望我已经足够具体了。
答案 0 :(得分:2)
这应该有效
<强> 数据 强>
df <- data.frame(col=c("chr5_122424840_122523745_NM_001136239_mRNA",
"chr17_38632079_38657854_NM_032865_mRNA"))
<强> 代码 强>
df$col <- sub(".*(NM.*)_mRNA", "\\1", df$col)
只要字符串包含NM
并以_mRNA
答案 1 :(得分:1)
有很多方法可以做。这是一个使用库stringr。我只是推荐它,因为代码更容易理解
library(stringr)
patron <- "NM_[0-9]+" # NM_ pasted to any number of digits
str_extract(your_data_frame$your_column, patron) # Assign to a column or not