Announcement

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

  • Counting number of observations with same variables

    Hi
    I have 100 observations in Stata, where each observations has 4 variables: student_id, school, level and class.

    I want to generate a variable (Class_size), which tells me how many students belong to the same class, that is how many students_id share the same values of school, level and class. Is there a way to do this in Stata?

  • #2
    yes, there is and if you follow the advice in the FAQ and post a data example, someone will give you exact code; in the meantime, you probably want to use an -egen- function; see
    Code:
    h egen

    Comment


    • #3
      Alex:
      provided that Rich's wise recommendation still applies, do you mean something along the following lines?
      Code:
      . sysuse auto.dta
      (1978 automobile data)
      
      . egen wanted=group( rep78 foreign)
      (5 missing values generated)
      
      . bysort rep78 foreign: tab wanted
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 1, foreign = Domestic
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                1 |          2      100.00      100.00
      ------------+-----------------------------------
            Total |          2      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 2, foreign = Domestic
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                2 |          8      100.00      100.00
      ------------+-----------------------------------
            Total |          8      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 3, foreign = Domestic
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                3 |         27      100.00      100.00
      ------------+-----------------------------------
            Total |         27      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 3, foreign = Foreign
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                4 |          3      100.00      100.00
      ------------+-----------------------------------
            Total |          3      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 4, foreign = Domestic
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                5 |          9      100.00      100.00
      ------------+-----------------------------------
            Total |          9      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 4, foreign = Foreign
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                6 |          9      100.00      100.00
      ------------+-----------------------------------
            Total |          9      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 5, foreign = Domestic
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                7 |          2      100.00      100.00
      ------------+-----------------------------------
            Total |          2      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = 5, foreign = Foreign
      
      group(rep78 |
         foreign) |      Freq.     Percent        Cum.
      ------------+-----------------------------------
                8 |          9      100.00      100.00
      ------------+-----------------------------------
            Total |          9      100.00
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = ., foreign = Domestic
      no observations
      
      ----------------------------------------------------------------------------------------------------------------------------------------
      -> rep78 = ., foreign = Foreign
      no observations
      
      
      . label define wanted 1 "rep78 = 1, foreign = Domestic" 2 "rep78 = 2, foreign = Domestic" 3 "rep78 = 3, foreign = Domestic"///
      label define wanted 4 "rep78 = 3, foreign = Foreign" 5 "rep78 = 4, foreign = Domestic" 6 "rep78 = 4, foreign = Foreign" ///
      7 "rep78 = 5, foreign = Domestic" 8 "rep78 = 5, foreign = Foreign", add
      
      . label val wanted wanted
      
      . tab wanted
      
               group(rep78 foreign) |      Freq.     Percent        Cum.
      ------------------------------+-----------------------------------
      rep78 = 1, foreign = Domestic |          2        2.90        2.90
      rep78 = 2, foreign = Domestic |          8       11.59       14.49
      rep78 = 3, foreign = Domestic |         27       39.13       53.62
       rep78 = 3, foreign = Foreign |          3        4.35       57.97
      rep78 = 4, foreign = Domestic |          9       13.04       71.01
       rep78 = 4, foreign = Foreign |          9       13.04       84.06
      rep78 = 5, foreign = Domestic |          2        2.90       86.96
       rep78 = 5, foreign = Foreign |          9       13.04      100.00
      ------------------------------+-----------------------------------
                              Total |         69      100.00
      
      .
      Kind regards,
      Carlo
      (StataNow 18.5)

      Comment


      • #4
        Code:
        bysort school level class : gen class_size = _N

        Comment

        Working...
        X