首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为每一行获取字符串的特定部分

为每一行获取字符串的特定部分
EN

Stack Overflow用户
提问于 2017-09-11 20:29:14
回答 2查看 56关注 0票数 1

我有一个数据,我想取其中的具体部分。

代码语言:javascript
复制
    DoseResponse_Curves/drCurve_AAATT.pdf
    DoseResponse_Curves/drCurve_AGMK1.pdf
    DoseResponse_Curves/drCurve_AGU.pdf
    DoseResponse_Curves/drCurve_ALH1L2.pdf
    DoseResponse_Curves/drCurve_ALKB1.pdf
    DoseResponse_Curves/drCurve_AS2.pdf
    DoseResponse_Curves/drCurve_ANK1.pdf
    DoseResponse_Curves/drCurve_ANKRD54.pdf

我只想吃第二次之后和之前发生的一切。这意味着输出如下所示

代码语言:javascript
复制
AAATT 
AGMK1
AGU
ALH1L2
ALKB1
AS2
ANK1
ANKRD54

注意:当我们使用基因名称时,可以包含诸如c(".", "-")这样的字符。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-11 20:33:17

您可以使用sub和正则表达式来完成这一任务。

代码语言:javascript
复制
Files = c(
    'DoseResponse_Curves/drCurve_AAATT.pdf',
    'DoseResponse_Curves/drCurve_AGMK1.pdf',
    'DoseResponse_Curves/drCurve_AGU.pdf',
    'DoseResponse_Curves/drCurve_ALH1L2.pdf',
    'DoseResponse_Curves/drCurve_ALKB1.pdf',
    'DoseResponse_Curves/drCurve_AS2.pdf',
    'DoseResponse_Curves/drCurve_ANK1.pdf',
    'DoseResponse_Curves/drCurve_ANKRD54.pdf')

sub(".*?_.*?_(.*?)\\..*", "\\1", Files)
[1] "AAATT"   "AGMK1"   "AGU"     "ALH1L2"  "ALKB1"   "AS2"     "ANK1"   
[8] "ANKRD54"
票数 2
EN

Stack Overflow用户

发布于 2017-09-11 20:51:20

有很多种方式:

代码语言:javascript
复制
# Example data with gene names with dots and dashes
Files = c('DoseResponse_Curves/drCurve_ALKB1.pdf',
          'DoseResponse_Curves/drCurve_BAC05914.1.pdf',
          'DoseResponse_Curves/drCurve_ALDH1L1-AS1.pdf',
          'DoseResponse_Curves/drCurve_AL953854.2-002.pdf')

# as parts of path are all same, we can sub with "":
gsub("DoseResponse_Curves/drCurve_|.pdf", "", Files)
# [1] "ALKB1"          "BAC05914.1"     "ALDH1L1-AS1"    "AL953854.2-002"

# Or, as we are working with path and filenames maybe:
gsub("drCurve_", "", tools::file_path_sans_ext(basename(Files)))
# [1] "ALKB1"          "BAC05914.1"     "ALDH1L1-AS1"    "AL953854.2-002"


# @G5W answer doesn't handle extra dots in gene names
sub(".*?_.*?_(.*?)\\..*", "\\1", Files)
# [1] "ALKB1"       "BAC05914"    "ALDH1L1-AS1" "AL953854"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46163885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档