Создание нового столбца в JMP с использованием условия if из другого столбца
Я очень новичок в JMP, поэтому я все еще чувствую себя вокруг. Я хочу создать новый столбец под названием "Статус" в JMP. Этот статус является символическим и зависит от значения столбца "Оценка". Если значение записи в столбце "Оценка" равно нулю, значением записи в столбце "Состояние" должно быть "сбой". Если значение "Grade" больше 100, запись в столбце "Status" должна быть "недопустимой". Если значение:Grade"меньше 0, значение" Status "должно быть" invalid ". Это должно быть просто. Но каким-то образом мой сценарий не будет работать:
dt = Current Data Table();
dt << New Column("Status", Character, Formula(
If(:Name( "Grade" )==0, "fail",
:Name( "Grade" )>100, "invalid",
:Name( "Grade" )<0, "invalid")
));
Можете ли вы помочь мне отладить этот скрипт? Спасибо!
1 ответ
Я только что попробовал сценарий, и формула работает для меня.
Вот немного JSL, который является немного более полным, который также добавляет столбец "Оценка", от которого зависит "Состояние".
dt = Current Data Table();
dt << New Column( "Grade",
Numeric,
"Continuous",
Format( "Best", 12 ),
);
dt << New Column( "Status",
Character,
"Nominal",
Formula(
If(
:Grade == 0, "fail",
:Grade > 100, "invalid",
:Grade < 0, "invalid"
)
)
);
Возможно, проблема в том, что у вас еще не открыта таблица данных со столбцом оценок? Вот скрипт для создания новой таблицы с формулой и некоторыми значениями.
New Table( "Grading Test",
Add Rows( 7 ),
New Column( "Grade",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [45, 20, 100, 101, -4, 0, 120] )
),
New Column( "Status",
Character,
"Nominal",
Formula(
If(
:Grade == 0, "fail",
:Grade > 100, "invalid",
:Grade < 0, "invalid"
)
)
)
);
Я создал это путем интерактивного создания таблицы и использования меню красного треугольника и выбрал "Копировать сценарий таблицы".
Я пробовал JMP 12.0, какую версию вы используете?