Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • How to delete everyhing in square brackets?

    Hey guys, I would have the following question. I have a variable, that sometimes contains something in square brackets. I would like to delete everything that is in sqaure brackets.
    To illustrate:

    Code:
     
    number obervation
    1 [blablabla] Real Mardrid
    2 [oink wuff] Arsenal London
    3 [tztzt] Manchester City
    4 [blablabla] Juventus Turin
    So I would love to create a new variable -- without all the mess that is in square brackets:

    Code:
     
    number obervation new_variable
    1 [blablabla] Real Mardrid Real Madrid
    2 [oink wuff] Arsenal London Arsenal London
    3 [tztzt] Manchester City Manchester City
    4 [blablabla] Juventus Turin Juventus Turin
    Is it possible in Stata to create such a new variable?

  • #2
    If it's as simple as your examples imply, then one way is

    Code:
    gen team = trim(substr(data, strpos(incoming_data, "]") + 1, .))

    Comment


    • #3
      If it's more complicated, the following could be used

      Code:
      clear
      input n str100 s
      1    "[blablabla] Real Mardrid"
      2    "[oink wuff] Arsenal London"
      3    "[tztzt] Manchester City"
      4    "[blablabla] Juventus Turin"
      5    "stuff [blablabla] Juventus Turin"
      end
      
      gen s2 = trim(regexr(s,"\[.+\] *",""))
      list
      The "\[.+\] *" pattern breaks down to
      1. "\[" a left bracket (the backslash is an escape character because square brackets are special characters)
      2. ".+" any character, one or more times
      3. "\]" a right bracket
      4. " *" zero or more spaces (to remove trailing spaces)
      Last edited by Robert Picard; 25 Feb 2015, 10:01.

      Comment

      Working...
      X