- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Column Name as Variable (Very Simple)
Dear All,
I am struggling with a very simple problem.
I need to select a column name using a variable. Please see below:
List = {"A","B","C"};
For(
i=1,
i<=nitems(List),
i++,
Add Columns from Update Table( :Name(List[i]) )
);
However, JMP does not accept anything inside ":Name()" that isn't an explicit quoted string.. In fact, "List[i]" is a quoted string, but the code doesn't even run.
How can I get around this?
Thank you!
This post originally written in German and has been translated for your convenience. When you reply, it will also be translated back to German.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
I assumed you wanted to add a column from the update table to a new table. I read your code, and specifically the statement
Add Columns from Update Table( :Name(List[i]) )
I am not aware of a JMP statement of this name, and thought you were specifying pseudo code for the action you wanted.
If you need to execute this code specifically, you can expand the List reference to a literal string, and execute it
Eval( Parse( "Add Columns from Update Table( :Name(" || List[i] || ") )" ) );
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
Try this.....you need to embed the quotes using the escape sequence
For(
i=1,
i<=nitems(EPIData_to_Get),
i++,
Reactors_EPI << New Column(
EPIData_to_Get[i],
Numeric, Continuous,
Formula(
If( :Parameter == EPIData_to_Get[i],
:Value
)
)
);
Eval( Parse( EvalExpr( "Column(Reactors_EPI,:Name(" || EPIData_to_Get[i] ||
")) << Set Property( \!"Spec Limits\!", {LSL(Expr(Reactors_EPI:LSL)), USL(Expr(Reactors_EPI:USL)), Show Limits(1)} ) " ) ) )
);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
Here is how I would accomplish what you want
New Table( "Big Class",
Add Rows( 40 ),
New Column(
["en" => "name", "ja" => "名前", "x-id" => "S_name_Col", "zh-CN" => "姓名"],
Character,
"Nominal",
Set Property(
"Notes",
["en" => "...usually used as a label variable in plots",
"ja" => "散布図のラベル変数として使用する。",
"x-id" => "S_usually_used_as_a_label_variable_Not",
"zh-CN" => "...通常用作图中的标签变量"]
),
Set Values(
{"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT",
"BARBARA", "ALICE", "SUSAN", "JOHN", "JOE", "MICHAEL", "DAVID", "JUDY",
"ELIZABETH", "LESLIE", "CAROL", "PATTY", "FREDERICK", "ALFRED", "HENRY",
"LEWIS", "EDWARD", "CHRIS", "JEFFREY", "MARY", "AMY", "ROBERT",
"WILLIAM", "CLAY", "MARK", "DANNY", "MARTHA", "MARION", "PHILLIP",
"LINDA", "KIRK", "LAWRENCE"}
),
Set Display Width( 0 )
),
New Column(
["en" => "age", "ja" => "年齢", "x-id" => "S_age_Col", "zh-CN" => "年龄"],
Numeric,
"Ordinal",
Format( "Fixed Dec", 5, 0 ),
Set Property(
"Notes",
["en" => "Explore data adventurously",
"ja" => "年齢別にデータを探索する。",
"x-id" => "S_Explore_data_adventurously_Not",
"zh-CN" => "大胆地探究数据"]
),
Set Values(
[12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 16, 16,
16, 17, 17, 17]
),
Set Display Width( 0 )
),
New Column(
["en" => "sex", "ja" => "性別", "x-id" => "S_sex_Col", "zh-CN" => "性别"],
Character( 1 ),
"Nominal",
Set Property(
"Notes",
["en" => "Explore data adventurously",
"ja" => "性別でデータを探索する。",
"x-id" => "S_Explore_data_adventurously_2_Not",
"zh-CN" => "大胆地探究数据"]
),
Set Values(
{"F", "F", "F", "F", "F", "M", "M", "M", "F", "F", "F", "M", "M", "M",
"M", "F", "F", "F", "F", "F", "M", "M", "M", "M", "M", "M", "M", "F",
"F", "M", "M", "M", "M", "M", "F", "F", "M", "F", "M", "M"}
),
Set Display Width( 0 )
),
New Column(
["en" => "height",
"ja" => "身長(インチ)",
"x-id" => "S_height_Col",
"zh-CN" => "身高"],
Numeric,
"Continuous",
Format( "Fixed Dec", 5, 0 ),
Set Property(
"Notes",
["en" => "Explore data adventurously",
"ja" => "データを探索する。二変量の関係のXに指定する。",
"x-id" => "S_Explore_data_adventurously_3_Not",
"zh-CN" => "大胆地探究数据"]
),
Set Values(
[59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59, 61, 62, 65,
63, 62, 63, 64, 65, 64, 68, 64, 69, 62, 64, 67, 65, 66, 62, 66, 65, 60,
68, 62, 68, 70]
),
Set Display Width( 0 )
),
New Column(
["en" => "weight",
"ja" => "体重(ポンド)",
"x-id" => "S_Big_Class_weight_Col",
"zh-CN" => "体重"],
Numeric,
"Continuous",
Format( "Fixed Dec", 5, 0 ),
Set Property(
"Notes",
["en" => "Explore data adventurously",
"ja" => "データを探索する。二変量の関係のYに指定する。",
"x-id" => "S_Explore_data_adventurously_4_Not",
"zh-CN" => "大胆地探究数据"]
),
Set Values(
[95, 123, 74, 145, 64, 84, 128, 79, 112, 107, 67, 98, 105, 95, 79, 81,
91, 142, 84, 85, 93, 99, 119, 92, 112, 99, 113, 92, 112, 128, 111, 105,
104, 106, 112, 115, 128, 116, 134, 172]
),
Set Display Width( 0 )
),
Set Label Columns( :name )
)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
I apologize but I do not understand how this could help me..
Maybe I wasn't clear in my question..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
I assumed you wanted to add a column from the update table to a new table. I read your code, and specifically the statement
Add Columns from Update Table( :Name(List[i]) )
I am not aware of a JMP statement of this name, and thought you were specifying pseudo code for the action you wanted.
If you need to execute this code specifically, you can expand the List reference to a literal string, and execute it
Eval( Parse( "Add Columns from Update Table( :Name(" || List[i] || ") )" ) );
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
Thank you!
My bad for not explaining properly.
I have the next level question... I think I have to combine "Parse" with "EvalExpr" but I don't know how...
Please see below:
For(
i=1,
i<=nitems(EPIData_to_Get),
i++,
Reactors_EPI << New Column(
EPIData_to_Get[i],
Numeric, Continuous,
Formula(
If( :Parameter == EPIData_to_Get[i],
:Value
)
)
);
Eval( Parse( EvalExpr( "Column(Reactors_EPI,:Name(" || EPIData_to_Get[i] || ")) << Set Property( "Spec Limits", {LSL(Expr(Reactors_EPI:LSL)), USL(Expr(Reactors_EPI:USL)), Show Limits(1)} ) " ) ) )
);
Of course, written like this does not work...
Can you help?
Thank you again!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
Try this.....you need to embed the quotes using the escape sequence
For(
i=1,
i<=nitems(EPIData_to_Get),
i++,
Reactors_EPI << New Column(
EPIData_to_Get[i],
Numeric, Continuous,
Formula(
If( :Parameter == EPIData_to_Get[i],
:Value
)
)
);
Eval( Parse( EvalExpr( "Column(Reactors_EPI,:Name(" || EPIData_to_Get[i] ||
")) << Set Property( \!"Spec Limits\!", {LSL(Expr(Reactors_EPI:LSL)), USL(Expr(Reactors_EPI:USL)), Show Limits(1)} ) " ) ) )
);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Column Name as Variable (Very Simple)
You are the best.
Thanks!