Announcement

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

  • Problem with Lag and Lead operators

    I have a problem with the F. command in xtset. The relevant part of the dataset is:

    Code:
    . xtset authid year
    . d authid year afid countrycode
    
    Variable      Storage   Display    Value
        name         type    format    label      Variable label
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    authid          double  %15.0g                Scopus identifier of author
    year            float   %9.0g                
    afid            long    %15.0g                Scopus identifier of affiliation.
    countrycode     int     %52.0g     etich      country-code
    For a given panel, I get:

    Code:
    . list year  authid afid* countrycode* if authid == 7003989689
    
             +-----------------------------------------------+
             | year       authid       afid      countrycode |
             |-----------------------------------------------|
     549793. | 1988   7003989689   60016418   United Kingdom |
     549794. | 1989   7003989689   60033125   United Kingdom |
     549795. | 1990   7003989689   60033125   United Kingdom |
     549796. | 1991   7003989689   60033125   United Kingdom |
     549797. | 1992   7003989689   60033125   United Kingdom |
             |-----------------------------------------------|
     549798. | 1993   7003989689   60033125   United Kingdom |
     549799. | 1994   7003989689   60033125   United Kingdom |
     549800. | 1995   7003989689   60015138   United Kingdom |
     549801. | 1996   7003989689   60015138   United Kingdom |
     549802. | 1997   7003989689   60015138   United Kingdom |
             |-----------------------------------------------|
     549803. | 1998   7003989689   60015138   United Kingdom |
     549804. | 1999   7003989689   60027509            Italy |
             +-----------------------------------------------+
    I want to generate a variable containing the next year's countrycode and authid. The commands

    Code:
    . gen countrycode_next = F.countrycode
    (2,901,342 missing values generated)
    
    . gen afid_next = F.afid
    (2,901,342 missing values generated)
    give the following outcome:

    Code:
    . list year  authid afid* countrycode* if authid == 7003989689
     
             +-------------------------------------------------------------------------------------------------------------------------------+
             | year       authid       afid   afid_n~t   afid_s~o      countrycode   countrycode_~t |
             |--------------------------------------------------------------------------------------------------------------------------|
     549793. | 1988   7003989689   60016418   60033124          .   United Kingdom   United Kingdom |
     549794. | 1989   7003989689   60033125   60033124          .   United Kingdom   United Kingdom |
     549795. | 1990   7003989689   60033125   60033124          .   United Kingdom   United Kingdom |
     549796. | 1991   7003989689   60033125   60033124          .   United Kingdom   United Kingdom |
     549797. | 1992   7003989689   60033125   60033124          .   United Kingdom   United Kingdom |
             |---------------------------------------------------------------------------------------------------------------------|
     549798. | 1993   7003989689   60033125   60033124          .   United Kingdom   United Kingdom |
     549799. | 1994   7003989689   60033125   60015136          .   United Kingdom   United Kingdom |
     549800. | 1995   7003989689   60015138   60015136          .   United Kingdom   United Kingdom |
     549801. | 1996   7003989689   60015138   60015136          .   United Kingdom   United Kingdom |
     549802. | 1997   7003989689   60015138   60015136          .   United Kingdom   United Kingdom |
             |----------------------------------------------------------------------------------------------------------------|
     549803. | 1998   7003989689   60015138   60027508          .   United Kingdom            Italy |
     549804. | 1999   7003989689   60027509          .          .            Italy                . |
             +-----------------------------------------------------------------------------------------------------+
    While the countrycode is correct, the afid is reduced by 1 or 2. I cannot think of an error which would determine this behaviour, and any help would be much appreciated (PS this is my first post, so apologies if I have inadvertently missed some convention).
    Last edited by Gianni De Fraja; 20 Dec 2022, 08:16. Reason: pressed save instead of preview
Working...
X