完全パネルデータの作成にあたり、観測期間(年次データ)のすべてが揃った個体のデータのみを、新しいデータフレームに保存したいです


使用するデータは多少簡略化していますが、以下のようなものです。

name year ...  
A社 1999 ...  
A社 2000 ...  
A社 2001 ...  
A社 2002 ...  
B社 1999 ...  
B社 2000 ...  
C社 2001 ...  
C社 2002 ...  
D社 1999 ...  
D社 2000 ...  
D社 2001 ...  
E社 2002 ...

この中から1999年∼2001年のデータが'全て'揃っている企業のみを新しいデータフレームに保存したいです。目標は以下の形になります。  
name year ...  
A社 1999 ...  
A社 2000 ...  
A社 2001 ...  
D社 1999 ...  
D社 2000 ...  
D社 2001 ...




**標準関数**

[code]

    dfx <- do.call('rbind',
      c(by(df, df$name, function(x) {
          f <- x$year %in% 1999:2001
          if (sum(f)==3) x[f,]
        }), make.row.names=F))
    
    print(dfx)
    #
      name year
    1  A社 1999
    2  A社 2000
    3  A社 2001
    5  D社 1999
    6  D社 2000
    7  D社 2001
    
[/code]

**dplyr**

[code]

    library(dplyr)
    
    dfx <-
      df %>%
      group_by(name) %>%
      filter({f=year %in% 1999:2001;sum(f)==3&f})
    
    print(dfx)
    #
    # A tibble: 6 x 2
    # Groups:   name [2]
      name   year
      <chr> <dbl>
    1 A社    1999
    2 A社    2000
    3 A社    2001
    4 D社    1999
    5 D社    2000
    6 D社    2001
    
[/code]

