【问题标题】:Remove all text after text string删除文本字符串后的所有文本
【发布时间】:2019-01-22 14:19:54
【问题描述】:

我有一个 R 数据框和一个 Excel 电子表格(根据数据框创建),其中有 NCAA 篮球比赛数据。在一个列中,可能有一个字符串

“韦斯利哈里斯三分跳投命中。杰文卡特助攻。”。

我想删除“Assisted by”之后的所有内容(包括“Assisted by”),但在 R 和 Excel 中我都没有找到这样做的方法。请注意,并非每个条目都有“辅助”一词,因此我也必须考虑到这一点。

【问题讨论】:

  • “不是每个条目都有“辅助”这个短语,所以我也必须考虑这一点”——你只是让这些条目保持原样吗?

标签: r excel replace character


【解决方案1】:

在R中,我们可以使用regexpr来找出字符串中“Assisted by”所在的字符数。那么我们可以只取字符 1 到 "Assisted by" 开始之前的字符的子串:

mystr <- "Wesley Harris made Three Point Jumper. Assisted by Jevon Carter."

A <- regexpr("Assisted by", mystr)[[1]]
substr(mystr, start=1, stop=A-1)

【讨论】:

    【解决方案2】:

    如果您不反对使用 vba 在 excel 中对此进行后处理,则将字符串转换为数组并使用“辅助”作为分隔符并获取第一部分可能是最简单的,就像这样(假设字符串在A1):

    Cells(1,1)=Split(Cells(1,1), "Assisted")(0)
    

    如果您需要对 A 列中的每个单元格执行此操作,您可以使用循环遍历它

    with Worksheets("Sheet1")
    for i=1 to .UsedRange.Rows.Count
        .Cells(i,1)=Split(.Cells(i,1), "Assisted")(0)
    next i
    end with
    

    【讨论】:

      【解决方案3】:

      这是一个使用 excel 方程 LEFT & SEARCH 的解决方案

      A1 = LEFT(A1,SEARCH("辅助",A1&"辅助")-1)


      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多