Announcement

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

  • Inlist

    Hi: I wanted to create a new variable that is yes/no if one of the other 5 variables has either CBC or BUN.

    I tried using gen new = inlist("CBC" | "BUN", newv1, newv2, newv3, newv4, newv5) but stata came back with type mismatch. Not sure how to correct my code. Thank you for your help in advance!

    input str14 newv1 str28(newv2 newv3 newv4 newv5)
    "BUN" "CBC" "" "" ""
    "BUN" "TAK" "CBC" "" ""
    "BUN" "TAK" "" "" ""
    "BUN" "TAK" "" "" "CBC"
    "CBC" "TAK" "" "" ""

  • #2
    The or | operator only applies to numeric operands just as "frog" | "toad" may look like "frog" or "toad", but that is not how Stata thinks of it. Hence supplying string arguments is a rype mismatch, which is either using string where numeric is expected or the other way round.

    You need

    Code:
     inlist("CBC", newv1, newv2, newv3, newv4, newv5) |  inlist("BUN", newv1, newv2, newv3, newv4, newv5)

    Comment


    • #3
      you can't use "|" like that but instead need to use 2 inlists with an OR between them; e.g.,
      Code:
      gen new = inlist("CBC", newv1, newv2, newv3, newv4, newv5) | inlist("BUN", newv1, newv2, newv3, newv4, newv5)

      Comment


      • #4
        Makes sense! Thanks again Nick Thanks Rich as well.

        Comment

        Working...
        X