【问题标题】:R split a text column based second occurrence of the seperatorR基于分隔符的第二次出现拆分文本列
【发布时间】:2020-05-07 10:37:42
【问题描述】:

我有以下 1 列数据框:

Column
XXX_513_TEXT
XXX_513
XXX_493_TEXT
XXX_493
XXX_589

我想分成如下所示的 2 列:

Column1     Column2
XXX_513     TEXT
XXX_513      
XXX_493     TEXT
XXX_493     
XXX_589     

我尝试了 tidyr 包中的以下 seperate() 函数,但拆分是在 XXX 之后的第一个 _ 上进行的。

 separate(DataFrame, Column, c("Column1","Column2"), sep = "_")

如果存在_,我如何指定要在第二次出现时进行拆分,从而实现所需的输出?

【问题讨论】:

    标签: r tidyr


    【解决方案1】:

    仅当 _ 前面有数字时才使用:

    separate(df, column, into = c("a", "b"), sep = "(?<=[0-9])_")
            a    b
    1 XXX_513 TEXT
    2 XXX_513 <NA>
    3 XXX_493 TEXT
    4 XXX_493 <NA>
    5 XXX_589 <NA>
    

    【讨论】:

    • 谢谢@sindri_baldur。我添加了fill="right" 来修复警告:separate(df, column, into = c("a", "b"), sep = "(?&lt;=[0-9])_", fill="right")
    猜你喜欢
    • 1970-01-01
    • 2016-07-17
    • 2013-03-11
    • 1970-01-01
    • 2013-11-15
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    相关资源
    最近更新 更多