Announcement

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

  • Expand rolling sequencies of observation within ID if

    Hi,

    I am using a panel dataset with different countries (example below). For each date there are two variables (value and number). I want to expand my dataset with all possible consecutive sequencies of 10 observation within ID that does not have a gap longer than 3 days, and renaming the 10 expanded observations with IDk. Where k is 1 to n expanded sequencies. I made a tag-variable for when the observations are more than 3 days apart (longgap).

    Variables:
    ID: country
    date: date
    diffdays: days since last observation
    longgap: more than 3 days since last observation
    value: some value
    number: some number



    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str15 ID double date float(diffdays longgap) double(value number)
    "Sweden" 21614 . 1  8.72  8.74
    "Sweden" 21615 1 .  8.32  8.72
    "Sweden" 21616 1 .  8.44  8.68
    "Sweden" 21619 3 .  8.66   8.9
    "Sweden" 21620 1 .   8.8   8.8
    "Sweden" 21621 1 .  8.88   8.9
    "Sweden" 21622 1 .  8.78   8.8
    "Sweden" 21623 1 .  8.88  8.98
    "Sweden" 21626 3 .  8.98  8.98
    "Sweden" 21627 1 .  8.78   8.9
    "Sweden" 21628 1 .   8.9   8.9
    "Sweden" 21629 1 .  8.76   8.9
    "Sweden" 21630 1 .  8.98   9.1
    "Sweden" 21633 3 .   8.9  9.94
    "Sweden" 21634 1 .    10 10.45
    "Sweden" 21635 1 .   9.5   9.5
    "Sweden" 21636 1 .  9.24   9.4
    "Sweden" 21637 1 .   9.4   9.4
    "Sweden" 21640 3 .  10.3  10.3
    "Sweden" 21641 1 .    10 10.25
    "Sweden" 21642 1 .  9.98 10.25
    "Sweden" 21643 1 . 10.35    11
    "Sweden" 21644 1 .    11  11.5
    "Sweden" 21647 3 .    11 11.85
    "Sweden" 21648 1 .  11.5  11.6
    "Sweden" 21649 1 .  11.8 13.75
    "Sweden" 21650 1 .  13.7  14.5
    "Sweden" 21651 1 .  13.6    14
    "Sweden" 21654 3 .    13  13.1
    "Sweden" 21655 1 .  12.7  13.2
    "Sweden" 21656 1 .  13.2  13.5
    "Sweden" 21657 1 . 14.15 14.15
    "Sweden" 21662 5 1  13.3  14.7
    "Sweden" 21663 1 .    14    15
    "Sweden" 21664 1 .  14.6 14.75
    "Sweden" 21665 1 .  13.8 14.25
    "Sweden" 21668 3 .    14  14.7
    "Sweden" 21669 1 .    14 14.65
    "Sweden" 21671 2 .  14.5  14.7
    "Sweden" 21672 1 . 14.05 14.05
    "Sweden" 21675 3 .  13.8  13.8
    "Sweden" 21676 1 . 13.45 13.45
    "Sweden" 21677 1 .  12.9  12.9
    "Sweden" 21678 1 .  12.8    13
    "Sweden" 21679 1 .    13  13.3
    "Sweden" 21682 3 .  13.1  13.5
    "Sweden" 21683 1 .  13.1 13.85
    "Sweden" 21684 1 .  13.8  14.1
    "Sweden" 21685 1 . 13.75  13.8
    "Sweden" 21686 1 .  13.8  13.8
    "Sweden" 21689 3 .  13.7    14
    "Sweden" 21690 1 .  14.2  16.1
    "Sweden" 21691 1 .  15.1  16.5
    "Sweden" 21692 1 .  16.1  16.2
    "Sweden" 21693 1 . 16.15    17
    "Sweden" 21696 3 . 17.25  19.5
    "Sweden" 21697 1 .  19.4  19.9
    "Sweden" 21698 1 .  19.6  19.8
    "Sweden" 21700 2 . 19.35 19.35
    "Sweden" 21703 3 .  16.5 17.75
    "Sweden" 21704 1 .    17  17.2
    "Sweden" 21705 1 . 16.95 17.75
    "Sweden" 21707 2 .    17 17.75
    "Sweden" 21710 3 .  17.7  17.7
    "Sweden" 21711 1 . 16.35  16.9
    "Sweden" 21712 1 . 16.15 16.15
    "Sweden" 21713 1 . 16.35  16.4
    "Sweden" 21714 1 .    16  16.5
    "Sweden" 21717 3 .  15.3 16.25
    "Sweden" 21718 1 . 15.05  15.3
    "Sweden" 21719 1 .  14.8  14.8
    "Sweden" 21720 1 .  15.1 17.25
    "Sweden" 21724 4 1 16.85  17.2
    "Sweden" 21725 1 .  17.7  18.6
    "Sweden" 21726 1 . 19.45 19.45
    "Sweden" 21727 1 . 18.35  18.5
    "Sweden" 21728 1 .  18.4  18.4
    "Sweden" 21731 3 . 17.55 18.35
    "Sweden" 21732 1 .  17.6    18
    "Sweden" 21733 1 .  17.8 18.25
    "Sweden" 21734 1 .  17.5  17.9
    "Sweden" 21735 1 .  17.3 17.85
    "Sweden" 21738 3 . 17.45 17.95
    "Sweden" 21739 1 .    17  17.4
    "Sweden" 21740 1 . 16.15 16.95
    "Sweden" 21741 1 . 16.45 16.45
    "Sweden" 21742 1 .  16.4 16.45
    "Sweden" 21745 3 .  16.2 16.25
    "Sweden" 21746 1 . 15.65  15.8
    "Sweden" 21747 1 .  15.8  15.8
    "Sweden" 21748 1 .  15.1  15.3
    "Sweden" 21749 1 .    15  16.2
    "Sweden" 21752 3 .  15.5    17
    "Sweden" 21753 1 .  15.8  16.5
    "Sweden" 21754 1 . 16.55  16.7
    "Sweden" 21755 1 . 16.95 16.95
    "Sweden" 21756 1 .  16.5 16.95
    "Sweden" 21759 3 .  16.9    17
    "Sweden" 21760 1 .  16.9 16.95
    "Sweden" 21761 1 .    17 17.15
    "Sweden" 21762 1 .  16.6 17.25
    "Sweden" 21763 1 .    16  17.2
    "US"     21614 . 1  13.3 13.52
    "US"     21615 1 .    13  13.9
    "US"     21616 1 . 13.46 13.86
    "US"     21619 3 . 13.84 14.44
    "US"     21620 1 .  14.8  15.4
    "US"     21621 1 .  15.3 16.78
    "US"     21622 1 .  15.7  15.7
    "US"     21623 1 . 14.58 14.84
    "US"     21626 3 .  14.3 14.88
    "US"     21627 1 .  14.4 14.42
    "US"     21628 1 . 14.12  14.4
    "US"     21629 1 . 14.36 14.84
    "US"     21630 1 . 14.76 14.76
    "US"     21633 3 . 14.38 14.88
    "US"     21634 1 . 14.56  14.6
    "US"     21635 1 .  14.6 16.78
    "US"     21636 1 .  16.3 17.72
    "US"     21637 1 . 16.38  17.7
    "US"     21640 3 . 15.75  17.1
    "US"     21641 1 .  15.6  16.3
    "US"     21642 1 . 16.05 16.15
    "US"     21643 1 . 16.15  17.7
    "US"     21644 1 .  16.7  17.7
    "US"     21647 3 . 17.25  17.9
    "US"     21648 1 . 17.95    18
    "US"     21649 1 . 17.35  17.5
    "US"     21650 1 .  17.3  17.3
    "US"     21651 1 .  16.9    17
    "US"     21654 3 . 17.35 17.35
    "US"     21655 1 . 16.55 16.85
    "US"     21656 1 .  16.8  16.8
    "US"     21657 1 .  16.2 16.65
    "US"     21662 5 1  15.8  15.8
    "US"     21663 1 .  15.2    16
    "US"     21664 1 . 14.55  18.4
    "US"     21665 1 . 16.85  17.5
    "US"     21668 3 . 17.75    18
    "US"     21669 1 .    17  17.9
    "US"     21671 2 .  16.4  17.3
    "US"     21672 1 .    17 17.25
    "US"     21675 3 . 17.25 17.25
    "US"     21676 1 . 16.95 16.95
    "US"     21677 1 . 17.15 17.15
    "US"     21678 1 . 16.15  17.8
    "US"     21679 1 .  16.8  16.8
    "US"     21682 3 .  16.3    17
    "US"     21683 1 . 16.25  16.8
    "US"     21684 1 .  16.6    17
    "US"     21685 1 .  16.5  16.9
    "US"     21686 1 . 16.55  16.9
    "US"     21689 3 .    16 17.45
    "US"     21690 1 .  17.2  17.2
    "US"     21691 1 .    17  17.1
    "US"     21692 1 .  17.1  17.2
    "US"     21693 1 . 16.75 16.75
    "US"     21696 3 .  16.7  16.7
    "US"     21697 1 . 16.05  16.6
    "US"     21698 1 . 16.55  16.6
    "US"     21700 2 .  16.4 16.75
    "US"     21703 3 .  16.5  16.5
    "US"     21704 1 .  15.5 16.65
    "US"     21705 1 . 16.95 16.95
    "US"     21707 2 .  15.8 16.85
    "US"     21710 3 . 16.15  16.9
    "US"     21711 1 .  16.9  16.9
    "US"     21712 1 .    16  16.3
    "US"     21713 1 . 15.95 15.95
    "US"     21714 1 . 15.95    16
    "US"     21717 3 . 15.85  15.9
    "US"     21718 1 .  15.6  15.8
    "US"     21719 1 .    16    16
    "US"     21720 1 . 15.75 15.75
    "US"     21724 4 1 15.45 15.55
    "US"     21725 1 . 15.55  16.1
    "US"     21726 1 .  15.6  15.6
    "US"     21727 1 .    15  15.5
    "US"     21728 1 . 15.45  15.8
    "US"     21731 3 . 15.75 16.75
    "US"     21732 1 .  16.8  16.8
    "US"     21733 1 .  16.5  16.5
    "US"     21734 1 .  16.2  16.2
    "US"     21735 1 .  15.7 15.75
    "US"     21738 3 . 15.65 15.65
    "US"     21739 1 . 15.25 15.45
    "US"     21740 1 . 14.95  15.4
    "US"     21741 1 . 15.15  15.5
    "US"     21742 1 . 15.05 16.25
    "US"     21745 3 . 15.25 15.25
    "US"     21746 1 .  15.2 15.35
    "US"     21747 1 . 15.25  17.3
    "US"     21748 1 .    17 17.25
    "US"     21749 1 . 16.25 16.25
    "US"     21752 3 .  15.7 16.05
    "US"     21753 1 .  16.3 16.95
    "US"     21754 1 . 16.15  16.5
    "US"     21755 1 .  16.1 16.35
    "US"     21756 1 .  16.2  16.3
    "US"     21759 3 .    16 16.25
    "US"     21760 1 .  15.6 15.95
    "US"     21761 1 . 15.75 16.15
    "US"     21762 1 . 16.05 16.05
    "US"     21763 1 .  15.5 15.75
    end
    format %td date


    So the expanded sequences (added at the bottom of my dataset) would be:
    Code:
    "Sweden1" 21614 . 1  8.72  8.74
    "Sweden1" 21615 1 .  8.32  8.72
    "Sweden1" 21616 1 .  8.44  8.68
    "Sweden1" 21619 3 .  8.66   8.9
    "Sweden1" 21620 1 .   8.8   8.8
    "Sweden1" 21621 1 .  8.88   8.9
    "Sweden1" 21622 1 .  8.78   8.8
    "Sweden1" 21623 1 .  8.88  8.98
    "Sweden1" 21626 3 .  8.98  8.98
    "Sweden1" 21627 1 .  8.78   8.9
    end
    format %td date
    Code:
    The second:
    "Sweden2" 21615 1 .  8.32  8.72
    "Sweden2" 21616 1 .  8.44  8.68
    "Sweden2" 21619 3 .  8.66   8.9
    "Sweden2" 21620 1 .   8.8   8.8
    "Sweden2" 21621 1 .  8.88   8.9
    "Sweden2" 21622 1 .  8.78   8.8
    "Sweden2" 21623 1 .  8.88  8.98
    "Sweden2" 21626 3 .  8.98  8.98
    "Sweden2" 21627 1 .  8.78   8.9
    "Sweden2" 21628 1 .   8.9   8.9
    end
    format %td date
    Code:
    The third:
    "Sweden3" 21616 1 .  8.44  8.68
    "Sweden3" 21619 3 .  8.66   8.9
    "Sweden3" 21620 1 .   8.8   8.8
    "Sweden3" 21621 1 .  8.88   8.9
    "Sweden3" 21622 1 .  8.78   8.8
    "Sweden3" 21623 1 .  8.88  8.98
    "Sweden3" 21626 3 .  8.98  8.98
    "Sweden3" 21627 1 .  8.78   8.9
    "Sweden3" 21628 1 .   8.9   8.9
    "Sweden3" 21629 1 .  8.76   8.9
    end
    format %td date
    And so on. BUT, when there is longgap==1 and less than 10 consecutive dates before that, no expanded sequence should be added. The next sequence to be added at the bottom of the dataset should thus be the first sequence of ten dates where the maximum gap between dates are 3 or less.

    To summarize. Add rolling sequencies of ten consecutive observations with maximum 3 days between observations, within ID.

    Dummy code:
    local k =1
    some kind of loop {
    bys ID: expand 10 if longgap!=1, start at observation==`k'
    local k `++k'
    }

Working...
X