Announcement

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

  • Question about keep var[1] ==1 and replace other var ==0

    Hi all,

    How can I keep var[1] == 1 and other var == 0?

    Here is my example:

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input float(id indi var)
    1 3 1
    1 3 1
    1 3 1
    1 3 1
    2 5 1
    2 5 1
    3 4 1
    3 4 1
    3 4 1
    end
    data set expect

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input float(id indi var)
    1 3 1
    1 3 0
    1 3 0
    1 3 0
    2 5 1
    2 5 0
    3 4 1
    3 4 0
    3 4 0
    end
    Thanks!

  • #2
    Code:
    sort id, stable
    by id: replace var = (_n == 1)

    Comment


    • #3
      Originally posted by Clyde Schechter View Post
      Code:
      sort id, stable
      by id: replace var = (_n == 1)
      Thank you Clyde. What about the first var is not 1?

      For example like this below, the first two value of var are 0, how can I just change the fourth var =0:


      Code:
      * Example generated by -dataex-. To install: ssc install dataex
      clear
      input float(id indi) str1 tcn float var
      1 1 "b" 0
      1 1 "a" 0
      1 1 "a" 1
      1 1 "b" 1
      end
      data expect


      Code:
      * Example generated by -dataex-. To install: ssc install dataex
      clear
      input float(id indi) str1 tcn float var
      1 1 "b" 0
      1 1 "a" 0
      1 1 "a" 1
      1 1 "b" 0
      end
      Thank you again!


      Comment


      • #4
        The following code assumes that var takes on only 0 and 1 values, and begins by verifying the assumption.

        Code:
        assert inlist(var, 0, 1)
        sort id, stable
        by id: replace var = sum(var)
        replace var = 0 if var != 1

        Comment

        Working...
        X