Announcement

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

  • Extract a number from string variable

    Hello

    I have a variable in stata following values I want to extract the numbers between - Copy\ and _ please how I can do that. I want the numeric output, not the string output, please.

    Thanks


    ----------------------- copy starting from the next line -----------------------
    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input str65 source_file
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    end
    ------------------ copy up to and including the previous line ------------------

  • #2
    You have several underscores after "Copy". The following extracts up to "_out".

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input str65 source_file
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
    end
    
    gen wanted= ustrregexra(source_file, ".*Copy\\(.*)\_out", "$1")
    Res.:

    Code:
    . l
    
         +---------------------------------------------------------------------------------------------+
         |                                                     source_file                      wanted |
         |---------------------------------------------------------------------------------------------|
      1. | H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out   9_34.81386388_72.36647856 |
      2. | H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out   9_34.81386388_72.36647856 |
      3. | H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out   9_34.81386388_72.36647856 |
      4. | H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out   9_34.81386388_72.36647856 |
         +---------------------------------------------------------------------------------------------+

    Comment


    • #3
      The first _ after copy\ please , the output need to be 9 and in numeric formate

      Comment


      • #4
        Code:
        * Example generated by -dataex-. For more info, type help dataex
        clear
        input str65 source_file
        "H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out"
        "H:\netcdf\May23\loop check - Copy\11_34.81386388_72.36647856_out"
        "H:\netcdf\May23\loop check - Copy\4000_34.81386388_72.36647856_out"
        end
        
        gen wanted= real(ustrregexra(source_file, ".*Copy\\(\d+)\_.*", "$1"))
        Res.:

        Code:
        . l
        
             +----------------------------------------------------------------------------+
             |                                                       source_file   wanted |
             |----------------------------------------------------------------------------|
          1. |   H:\netcdf\May23\loop check - Copy\9_34.81386388_72.36647856_out        9 |
          2. |  H:\netcdf\May23\loop check - Copy\11_34.81386388_72.36647856_out       11 |
          3. | H:\netcdf\May23\loop check - Copy\4000_34.81386388_72.36647856_ou     4000 |
             +----------------------------------------------------------------------------+

        Comment

        Working...
        X