turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- JMP User Community
- :
- Discussions
- :
- Discussions
- :
- Why does Fit Model only work with current table?

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Sep 23, 2014 9:14 AM
(3368 views)

I am new to jmp and jsl and unable to understand why the code below produces an error.

dt = open("simple.csv");

xyz = New Table("xyz", invisible);

//Current Data Table(dt);

fm = Fit Model(

Y(dt:X),

Effects(dt:Y),

Personality(Standard Least Squares),

Run Model,

Invisible

);

Print(fm);

Close(xyz);

Close(dt);

This produces the following error:

Cannot run without Y Responses

Specified Column not found in data table.{1} in access or evaluation of 'List' , {dt:X}Column not Found{1} in access or evaluation of 'dt:Y' , dt:Y

In the following script, error marked by /*###*/

Fit Model(

Method( "EMS", <<On ),

Emphasis( "Effect Screening", <<On ),

Keep dialog open( 1 ),

Y( dt:X ),

Effects( dt:Y ),

Personality( Standard Least Squares ),

Run Model,

Invisible

)

Model Dialog[]

However, if I don't create the `xyz` table, or if I close it before doing `Fit Model`, or if I uncomment the `Current Data Table(dt)`, then it works. So it would seem that `Fit Model` can only operate on the current table. Is this a bug in jmp or am I missing something?

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Sep 23, 2014 11:16 AM
(5710 views)

Platforms generally work on the current data table. However, you can make your script more robust by using the Send operator (<<) to explicitly state which table the platform call should apply to:

dt = open("simple.csv");

xyz = New Table("xyz", invisible);

//Current Data Table(dt);

fm = **dt <<** Fit Model(

Y(dt:X),

Effects(dt:Y),

Personality(Standard Least Squares),

Run Model,

Invisible

);

Michael Crotty

Sr Statistical Writer

JMP Development

Sr Statistical Writer

JMP Development

3 REPLIES

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Sep 23, 2014 11:16 AM
(5711 views)

Platforms generally work on the current data table. However, you can make your script more robust by using the Send operator (<<) to explicitly state which table the platform call should apply to:

dt = open("simple.csv");

xyz = New Table("xyz", invisible);

//Current Data Table(dt);

fm = **dt <<** Fit Model(

Y(dt:X),

Effects(dt:Y),

Personality(Standard Least Squares),

Run Model,

Invisible

);

Michael Crotty

Sr Statistical Writer

JMP Development

Sr Statistical Writer

JMP Development

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Sep 23, 2014 11:41 AM
(3187 views)

Okay, thanks! So, given that platforms operate only on the current table, is there any point to referring to the columns as "dt:X" rather than just ":X"?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Sep 23, 2014 12:34 PM
(3187 views)

Not that I know of. I generally just use the ":X" reference in platform scripts.

Michael Crotty

Sr Statistical Writer

JMP Development

Sr Statistical Writer

JMP Development