Our World Statistics Day conversations have been a great reminder of how much statistics can inform our lives. Do you have an example of how statistics has made a difference in your life? Share your story with the Community!
Choose Language Hide Translation Bar
Highlighted
Level I

## Scripting for Fit Linear with Where (Where-Case)

//Code to Fit Line, based on status from 3rd column
dt=Current Data Table();
col_name_list = dt << get column names( string );
col= Column(dt,col_name_list[3]);

Bivariate(
Y( col_name_list[1] ),
X( col_name_list[2] ),
Fit Line( {Line Color( {213, 72, 87} )} ),
Where( col == "Zone1" )/*This is where I have an issue. If we give the actual column name as :Name("Zone") it works. I would like to use a variable to I can perform on new data sets*/
);
Bivariate(
Y( col_name_list[1] ),
X( col_name_list[2] ),
Fit Line( {Line Color( {213, 72, 87} )} ),
Where( col == "Zone2" )/*This is where I have an issue. If we give the actual column name as :Name("Zone") it works. I would like to use a variable to I can perform on new data sets*/
);

//Reference Data Below

/*
X Y Zone
0 18 Zone1
0.1 19 Zone1
0.2 20 Zone1
0.3 21 Zone1
0.4 22 Zone1
0.5 23 Zone1
0.6 24 Zone1
0.7 25 Zone1
0.8 26 Zone1
0.9 27 Zone1
1 28 Zone1
1.1 30 Zone2
1.2 29 Zone2
1.3 28 Zone2
1.4 27 Zone2
1.5 26 Zone2
1.6 25 Zone2
1.7 24 Zone2
1.8 23 Zone2
1.9 22 Zone2
2 21 Zone2
*/

Highlighted
Super User

## Re: Scripting for Fit Linear with Where (Where-Case)

Below is a script that runs using the structure of the code that you specified

``````Names Default To Here( 1 );
dt = Current Data Table();
col_name_list = dt << get column names( string );

Bivariate(
Y( col_name_list[1] ),
X( col_name_list[2] ),
Fit Line( {Line Color( {213, 72, 87} )} ),
Where( As Column( col_name_list[3] ) == "Zone1" )/*This is where I have an issue. If we give the actual column name as :Name("Zone") it works. I would like to use a variable to I can perform on new data sets*/
);
Bivariate(
Y( col_name_list[1] ),
X( col_name_list[2] ),
Fit Line( {Line Color( {213, 72, 87} )} ),
dt << select Where( As Column( col_name_list[3] ) == "Zone2" )/*This is where I have an issue. If we give the actual column name as :Name("Zone") it works. I would like to use a variable to I can perform on new data sets*/
);``````

I assume that you retrieved the code for the script by specifying the "Save Script: from the platform.  Sometimes, when one uses a "By" in a platform, the script that is generated, creates all of the "Where Clause" code.  When, what you really want to do, is to just specify the "By" as you did when you ran the platform interactively.  Well, you can do that...below is the code with the "By" in it

``````Names Default To Here( 1 );
dt = Current Data Table();
col_name_list = dt << get column names( string );

Bivariate(
Y( col_name_list[1] ),
X( col_name_list[2] ),
Fit Line( {Line Color( {213, 72, 87} )} ),
By( col_name_list[3] )
);``````
Jim
Article Labels

There are no labels assigned to this post.