cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Sign-in to the JMP Community will be unavailable intermittently Dec. 6-7 due to a system update. Thank you for your understanding!
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.
  • JMP 19 is here! Learn more about the new features.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar

Help! Conditional Statements containing Missing Values

I am trying to create a column that labels a pair of points
as falling into category “I”, “II”, “III”, or “IV”.  The pair of points is
based off of two columns, and some cells have missing values.  I am
certain my code is logically correct. Can anyone help me find a working solution?

 

Below are several of my JSL attempts:

 

For Each Row(Assign(:Quadrant_Running = If(Is
Missing(:Running_Y), Continue(), Is Missing(:Running_X), Continue(), If(:Running_Y
>= 3 & :Running_X >= 3, "I", If(:Running_Y > 3 &
:Running_X < 3, "II", If(:Running_Y < 3 & :Running_X <
3, "III", "IV"))))))

For Each Row(Assign(:Quadrant_Running = If(Is
Missing(:Running_Y), Continue(), Is Missing(:Running_X), Continue(), :Running_Y
>= 3 & :Running_X >= 3, "I", :Running_Y > 3 &
:Running_X < 3, "II", :Running_Y < 3 & :Running_X <
3, "III", "IV"))

I have also attempted using a conditional “Or” :  If(Is
Missing(:Running_Y)|Is Missing(:Running_X), Continue())

And also:  If(Is Missing(:Running_Y|:Running_X),
Continue()).

Thanks for any assistance!!!

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Help! Conditional Statements containing Missing Values

Actually, I think the Continue() from your original script is OK -- you just need to remove the Assign().

Also, your second attempt (without the Assign()) is more compact:

For Each Row(

    :Quadrant_Running = If(

        Is Missing( :Running_Y ), Continue(),

        Is Missing( :Running_X ), Continue(),

        :Running_Y >= 3 & :Running_X >= 3, "I",

        :Running_Y > 3 & :Running_X < 3, "II",

        :Running_Y < 3 & :Running_X < 3, "III",

        "IV"

    )

)

Michael Crotty
Principal Statistical Writer
Manager, Statistical Documentation
JMP Development

View solution in original post

3 REPLIES 3

Re: Help! Conditional Statements containing Missing Values

Does this script do what you're looking for?  I just removed the Assign() function and changed the Continue()'s to empty strings (""), so that Quadrant_Running will be a missing string when one or both of your X/Y columns is missing.

For Each Row(

    :Quadrant_Running = If(

        Is Missing( :Running_Y ), "",

        Is Missing( :Running_X ), "",

        If( :Running_Y >= 3 & :Running_X >= 3,

            "I",

            If( :Running_Y > 3 & :Running_X < 3,

                "II",

                If( :Running_Y < 3 & :Running_X < 3,

                    "III",

                    "IV"

                )

            )

        )

    )

)

Michael Crotty
Principal Statistical Writer
Manager, Statistical Documentation
JMP Development

Re: Help! Conditional Statements containing Missing Values

Actually, I think the Continue() from your original script is OK -- you just need to remove the Assign().

Also, your second attempt (without the Assign()) is more compact:

For Each Row(

    :Quadrant_Running = If(

        Is Missing( :Running_Y ), Continue(),

        Is Missing( :Running_X ), Continue(),

        :Running_Y >= 3 & :Running_X >= 3, "I",

        :Running_Y > 3 & :Running_X < 3, "II",

        :Running_Y < 3 & :Running_X < 3, "III",

        "IV"

    )

)

Michael Crotty
Principal Statistical Writer
Manager, Statistical Documentation
JMP Development

Re: Help! Conditional Statements containing Missing Values

Thanks for your help guys!

The assign statement was more compact, and I ended up able to use the Continue() statement.

The issue was the settings on my column, I had not changed them to character values when I originally created the column. Doing so allowed the formula to run!

Recommended Articles