【问题标题】:gsub to split a string at - [duplicate]gsub 在 - [重复] 处拆分字符串
【发布时间】:2015-04-16 13:37:29
【问题描述】:

我在一列中有一堆值,如下所示。

             3145-MY     
             32441-TX   
             3245-NYC  
             416356-TPK  
             4H22-BLT      
             %ABC-ROCIST

我正在尝试将这些值拆分为 - ,我想要之前的所有内容 - ,输出应该是这样的

             3145    
             32441   
             3245 
             416356  
             4H22     
             %ABC

我尝试使用 gsub,但有点困惑,需要帮助。

【问题讨论】:

  • sub("-.+","",vectorname) - 虽然我确信这已经被回答过。
  • @thelatemail,就像一个魅力。 :-)
  • 也可以将strsplitsapply一起使用:sapply(strsplit(vectorname), "-"), "[", 1)
  • @PeterDee,我可能错了,但我准备好在处理大型数据集时 gsub 和 sub 效果最好? :)
  • @Science11 好吧,他们都“工作” - 我认为最快的方法是使用(g)sub

标签: r gsub


【解决方案1】:

多种方法之一: 在Reshape2 包中,您可以使用colsplit 在给定字符上拆分列。

df <- data.frame(var=c("3145-MY" ,    
    "32441-TX" ,  
    "3245-NYC"  ,
    "416356-TPK " ,
    "4H22-BLT"    ,  
    "%ABC-ROCIST"
))

library(reshape2)
df <- colsplit(df$var, "-", c("left", "right"))

给了

> df
    left  right
1   3145     MY
2  32441     TX
3   3245    NYC
4 416356   TPK 
5   4H22    BLT
6   %ABC ROCIST

【讨论】:

    猜你喜欢
    • 2015-03-31
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 2017-07-22
    • 2011-07-06
    • 2011-09-03
    相关资源
    最近更新 更多