【问题标题】:How to select a specific element on a list of character based on its position如何根据位置选择字符列表中的特定元素
【发布时间】:2017-08-28 10:05:28
【问题描述】:

我是新的 R 用户,我需要一些帮助。

我有一个如下所示的数据框:

Type                                     ID
pink-blue-blue-green-END                 125
blue-pink-END                            145
green-green-pink-END                     489
green-pink-blue-END                      478
pink-green-green-blue-END                546

我想要“蓝色”在“粉红色”之前的所有行,结果将是

Type                                     ID
pink-blue-blue-green-END                 125
green-pink-blue-END                      478
pink-green-green-blue-END                546

我想知道另一个提示 :) 如何删除字符列表中的所有“绿色”,例如第一行:

pink-blue-blue-END 

感谢您的帮助

【问题讨论】:

    标签: r position conditional character


    【解决方案1】:

    我们可以使用grep 来匹配单词“pink”,后跟一个或多个字符,然后是单词“blue”。请注意,\\b 表示单词边界

    df1[grepl("\\bpink\\b-.*\\bblue\\b", df1$Type),]
    #                       Type  ID
    #1  pink-blue-blue-green-END 125
    #4       green-pink-blue-END 478
    #5 pink-green-green-blue-END 546
    

    对于第二种情况,使用gsub

    df1$Type <- gsub("green-", "", df1$Type)
    

    【讨论】:

      猜你喜欢
      • 2021-10-20
      • 2021-01-19
      • 2012-11-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2017-04-19
      • 2023-01-18
      • 1970-01-01
      相关资源
      最近更新 更多