遍历具有相同字符串的列名并创建子集你好,
我有一个包含 300 列的 JMP 表“工作表 1”。 我正在尝试为所有相同的列创建子集,这些列的列名称中有一个字符串为“Ahu1”,然后对这些子集进行更改,例如添加列、更新它们并生成图形,最后将它们保存在一个文件夹中。 我能够为“Ahu1”编写脚本。 但我必须对所有其他“Ahu's”做同样的事情。 我希望对包含 stings 的其他列名重复此过程:Ahu2、Ahu3、Ahu4、Ahu5、Ahu6...Ahu52。 如何在 for 循环中执行此操作?
脚本如下。
original_dt = Current Data Table();
Data Table( "Sheet1" ) << Subset(
Output Table( "Ahu1", link to original data table( 0 ) ),
All rows,
columns(
:Timestamp,
:donSteedOccupancy,
:Name( "Raeford, NC Temp" ),
:DonSteedES Ahu1 ClgVlvCmd,
:DonSteedES Ahu1 HtgVlvCmd,
:DonSteedES Ahu1 DaT,
:DonSteedES Ahu1 SaFanCmd,
:DonSteedES Ahu1 ZnT,
:DonSteedES Ahu1 ZnTStpt
)
);
Ahu1_dt = Data Table( "Ahu1" );
Ahu1_dt << New Column( "Occupancy",
character,
Nominal,
Formula( Munger( :donSteedOccupancy, Length( :donSteedOccupancy ) - 4, Length( :donSteedOccupancy ) ) )
);
Column( "Occupancy" ) << delete formula;
Ahu1_dt << delete columns( "donSteedOccupancy" );
Ahu1_dt << New Column( "SaFanCmd",
character,
Nominal,
Formula(
Munger(
:DonSteedES Ahu1 SaFanCmd,
Length( :DonSteedES Ahu1 SaFanCmd ) - 4,
Length( :DonSteedES Ahu1 SaFanCmd )
)
)
);
Column( "SaFanCmd" ) << delete formula;
Ahu1_dt << delete columns( "DonSteedES Ahu1 SaFanCmd" );
Ahu1_dt << Column( "Occupancy" );
For Each Row( :Occupancy = Match( :Occupancy, " 1min", " 1", " 0min", " 0", :Occupancy ) );
Column( "Occupancy" ) << Data type( character ) << Set Data Type( Numeric );
Ahu1_dt << Column( "SaFanCmd" );
For Each Row( :SaFanCmd = Match( :SaFanCmd, " 1min", " 1", " 0min", " 0", :SaFanCmd ) );
Column( "SaFanCmd" ) << Data type( character ) << Set Data Type( Numeric );
Ahu1_dt:DonSteedES Ahu1 ClgVlvCmd << Format( "percent" );
Ahu1_dt:DonSteedES Ahu1 HtgVlvCmd << Format( "percent" );
Column( "SaFanCmd" ) << Modeling type( continuous );
optstartgraph = Ahu1_dt << Graph Builder(
Size( 1377, 923 ),
Variables(
X( :Timestamp ),
Y( :DonSteedES Ahu1 ClgVlvCmd ),
Y( :DonSteedES Ahu1 HtgVlvCmd, Position( 1 ) ),
Y( :Name( "Raeford, NC Temp" ) ),
Y( :DonSteedES Ahu1 DaT, Position( 2 ) ),
Y( :DonSteedES Ahu1 ZnT, Position( 2 ) ),
Y( :DonSteedES Ahu1 ZnTStpt, Position( 2 ) ),
Y( :SaFanCmd, Position( 2 ), Side( "Right" ) ),
Color( :Occupancy )
),
Elements( Position( 1, 1 ), Line( X, Y( 1 ), Y( 2 ), Color( 0 ), Legend( 5 ) ), Heatmap( X, Legend( 8 ) ) ),
Elements(
Position( 1, 2 ),
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Color( 0 ), Legend( 6 ) ),
Line( X, Y( 5 ), Color( 0 ), Legend( 7 ) ),
Heatmap( X, Legend( 9 ) )
),
SendToReport(
Dispatch( {"Line[DonSteedES Ahu1 ClgVlvCmd...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Heatmap[DonSteedES Ahu1 ClgVlvCmd...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Line[Raeford, NC Temp...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Line[SaFanCmd] (right)"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Heatmap[Raeford, NC Temp...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch(
{},
"Timestamp",
ScaleBox,
{Min( 3537633600 ), Max( 3538263600 ), Interval( "Hour" ), Inc( 1 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Angled" ) )}
),
Dispatch( {}, "DonSteedES Ahu1 ClgVlvCmd", ScaleBox, {Min( 0 )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties(
0,
{Transparency( 0.35 ), gradient(
{Color Theme(
{"mine", 16387, {{79, 16, 79}, {119, 0, 119}, {42, 63, 255}, {0, 170, 170}, {0, 227,
0}, {221, 221, 0}, {238, 119, 0}, {252, 11, 11}, {158, 33, 33}}, {0,
0.193732193732194, 0.2, 0.495726495726496, 0.501424501424502, 0.507122507122507,
0.943019943019943, 0.95, 0.954415954415954}}
)}
)}
)
), Legend Model(
9,
Properties(
0,
{Transparency( 0.35 ), gradient(
{Color Theme(
{"mine", 16387, {{79, 16, 79}, {119, 0, 119}, {42, 63, 255}, {0, 170, 170}, {0, 227,
0}, {221, 221, 0}, {238, 119, 0}, {252, 11, 11}, {158, 33, 33}}, {0,
0.193732193732194, 0.2, 0.495726495726496, 0.501424501424502, 0.507122507122507,
0.943019943019943, 0.95, 0.954415954415954}}
)}
)}
)
)}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {5, [0, 1], 8, [2], 6, [-3, -3, 4, 5], 7, [-3], 9, [3]} ),
Position( {0, 1, 2, -3, -3, 4, 5, -3, 3} )}
)
)
);
optstartgraph << Save Picture( "C:\Projects\Projects\Hoke\Year 1\Jmp\Year 0\DonSteed\Feb16\Ahu1.jpg", "JPG" );
optstartgraph << close window;
请帮帮我。
谢谢。
回复:遍历具有相同字符串的列名并创建子集@txnelson太感谢了 。
它的工作!
@uday_guntupalli也感谢您的帮助! 
回复:遍历具有相同字符串的列名并创建子集这是您的代码的一个版本,它将循环遍历所有 50 个 Ahu 列集。请参阅脚本中的注释,了解为使循环成为可能所做的工作
Names Default To Here( 1 );
original_dt = Data Table( "Sheet1" );
// Loop across all 50 Ahu column sets
// The number of column sets could be programatically determined
// if desired
For( i = 1, i <= 50, i++,
// Set the Ahu version to be used
targetAhu = "Ahu" || Char( i );
// Create the subsetted data table, naming it by the
// name of the current Ahu version
Ahu_dt = original_dt << Subset(
Output Table( targetAhu, link to original data table( 0 ) ),
All rows,
columns(
original_dt:Timestamp,
original_dt:donSteedOccupancy,
original_dt:Name( "Raeford, NC Temp" ),
Column( original_dt, "DonSteedES " || targetAhu || " ClgVlvCmd" ),
Column( original_dt, "DonSteedES " || targetAhu || " HtgVlvCmd" ),
Column( original_dt, "DonSteedES " || targetAhu || " DaT" ),
Column( original_dt, "DonSteedES " || targetAhu || " SaFanCmd" ),
Column( original_dt, "DonSteedES " || targetAhu || " ZnT" ),
Column( original_dt, "DonSteedES " || targetAhu || " ZnTStpt" )
)
);
// no need for this statement, since it is set when the data table is created
//Ahu_dt = Data Table( targetAhu );
// No changes needed here, except for pointing to the current Ahu data table
Ahu_dt << New Column( "Occupancy",
character,
Nominal,
Formula( Munger( :donSteedOccupancy, Length( :donSteedOccupancy ) - 4, Length( :donSteedOccupancy ) ) )
);
Column( Ahu_dt, "Occupancy" ) << delete formula;
Ahu_dt << delete columns( "donSteedOccupancy" );
// This section of code has required changes embedded within a formula
// JMP will not resolve the code properly and therefore, Substitution
// is required to force the generation of the exact code required for
// the formula
Eval(
Substitute(
Expr(
Ahu_dt << New Column( "SaFanCmd",
character,
Nominal,
Formula( Munger( __SaFanCmd__, Length( __SaFanCmd__ ) - 4, Length( __SaFanCmd__ ) ) )
)
),
Expr( __SaFanCmd__ ), Parse( ":DonSteedES " || targetAhu || " SaFanCmd" )
)
);
Column( Ahu_dt, "SaFanCmd" ) << delete formula;
// Minor changes, just making sure the current target data table is being
// pointed to
Ahu_dt << delete columns( "DonSteedES " || targetAhu || " SaFanCmd" );
Ahu_dt << Column( "Occupancy" );
For Each Row( ahu_dt:Occupancy = Match( Ahu_dt:Occupancy, " 1min", " 1", " 0min", " 0", Ahu_dt:Occupancy ) );
// I don't understand this next line of code....changing to character and then changing to numeric
// unless you are using JMP to get rid of non numeric data
Column( ahu_dt, "Occupancy" ) << Data type( character ) << Set Data Type( Numeric );
Ahu_dt << Column( "SaFanCmd" );
For Each Row( ahu_dt:SaFanCmd = Match( ahu_dt:SaFanCmd, " 1min", " 1", " 0min", " 0", ahu_dt:SaFanCmd ) );
Column( ahu_dt, "SaFanCmd" ) << Data type( character ) << Set Data Type( Numeric );
Column( Ahu_dt, "DonSteedES " || targetAhu || " ClgVlvCmd" ) << Format( "percent" );
Column( Ahu_dt, "DonSteedES " || targetAhu || " HtgVlvCmd" ) << Format( "percent" );
Column( Ahu_dt, "SaFanCmd" ) << Modeling type( continuous );
// The Graph Builder Platform has a few places where code will not be resolved, and therefore
// once again Substitution() is what is needed to make it work
Eval(
Substitute(
Expr(
optstartgraph = Ahu_dt << Graph Builder(
Size( 1377, 923 ),
Variables(
X( :Timestamp ),
Y( Column( Ahu_dt, "DonSteedES " || targetAhu || " ClgVlvCmd" ) ),
Y( Column( Ahu_dt, "DonSteedES " || targetAhu || " HtgVlvCmd" ), Position( 1 ) ),
Y( :Name( "Raeford, NC Temp" ) ),
Y( Column( Ahu_dt, "DonSteedES " || targetAhu || " DaT" ), Position( 2 ) ),
Y( Column( Ahu_dt, "DonSteedES " || targetAhu || " ZnT" ), Position( 2 ) ),
Y( Column( Ahu_dt, "DonSteedES " || targetAhu || " ZnTStpt" ), Position( 2 ) ),
Y( :SaFanCmd, Position( 2 ), Side( "Right" ) ),
Color( :Occupancy )
),
Elements( Position( 1, 1 ), Line( X, Y( 1 ), Y( 2 ), Color( 0 ), Legend( 5 ) ), Heatmap( X, Legend( 8 ) ) ),
Elements(
Position( 1, 2 ),
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Color( 0 ), Legend( 6 ) ),
Line( X, Y( 5 ), Color( 0 ), Legend( 7 ) ),
Heatmap( X, Legend( 9 ) )
),
SendToReport(
Dispatch( {__LineClgVlvCmd__}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {__HeatmapClgVlvCmd__}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Line[Raeford, NC Temp...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Line[SaFanCmd] (right)"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Heatmap[Raeford, NC Temp...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch(
{},
"Timestamp",
ScaleBox,
{Min( 3537633600 ), Max( 3538263600 ), Interval( "Hour" ), Inc( 1 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Angled" ) )}
),
Dispatch( {}, "DonSteedES " || targetAhu || " ClgVlvCmd", ScaleBox, {Min( 0 )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties(
0,
{Transparency( 0.35 ), gradient(
{Color Theme(
{"mine", 16387, {{79, 16, 79}, {119, 0, 119}, {42, 63, 255}, {0, 170, 170}, {0, 227, 0}, {221, 221, 0
}, {238, 119, 0}, {252, 11, 11}, {158, 33, 33}}, {0, 0.193732193732194, 0.2, 0.495726495726496,
0.501424501424502, 0.507122507122507, 0.943019943019943, 0.95, 0.954415954415954}}
)}
)}
)
), Legend Model(
9,
Properties(
0,
{Transparency( 0.35 ), gradient(
{Color Theme(
{"mine", 16387, {{79, 16, 79}, {119, 0, 119}, {42, 63, 255}, {0, 170, 170}, {0, 227, 0}, {221, 221, 0
}, {238, 119, 0}, {252, 11, 11}, {158, 33, 33}}, {0, 0.193732193732194, 0.2, 0.495726495726496,
0.501424501424502, 0.507122507122507, 0.943019943019943, 0.95, 0.954415954415954}}
)}
)}
)
)}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {5, [0, 1], 8, [2], 6, [-3, -3, 4, 5], 7, [-3], 9, [3]} ), Position(
{0, 1, 2, -3, -3, 4, 5, -3, 3}
)}
)
)
)
),
Expr( __LineClgVlvCmd__ ), "Line[DonSteedES " || targetAhu || " ClgVlvCmd...]",
Expr( __HeatmapClgVlvCmd__ ), "Heatmap[DonSteedES " || targetAhu || " ClgVlvCmd...]"
)
);
// Save the current graphic, replacing the jpg name with the current target Ahu version
optstartgraph << Save Picture( "C:\Projects\Projects\Hoke\Year 1\Jmp\Year 0\DonSteed\Feb16\" || targetAhu || ".jpg", "JPG" );
optstartgraph << close window;
// You can also close the current target data table if you want
close( dt_Ahu, no save );
); // End of For Loop回复:遍历具有相同字符串的列名并创建子集@himajafeb8 ,
在这一点上,我无法让它工作。 我会联系 support@jmp.com 。
回复:遍历具有相同字符串的列名并创建子集@uday_guntupalli
那是行不通的。 你还有别的办法吗?
谢谢
回复:遍历具有相同字符串的列名并创建子集@himajafeb8 ,
如果您要尝试这样的事情 - 基本上每次都使用正则表达式尝试在循环中匹配 Ahu,但编辑条件以从 1 - n 递增,我认为它会起作用。 我没有一个有效的例子。 我会在正则表达式方面多尝试一点
dt_Raw = Current Data Table();
ColNames = dt_Raw << Get Column Names("String");
RegexToMatch = "^(a|A)hu[0-9]$";
for(i = 1 , i <= N Items(ColNames), i++,
If(!IsMissing(Regex(Char(ColNames[i]),RegexToMatch)),
Col = Column(dt_Raw,i);
Col << Set Selected(1);
);
);回复:遍历具有相同字符串的列名并创建子集@uday_guntupalli
我附上了示例数据。
回复:遍历具有相同字符串的列名并创建子集@himajafeb8 ,
你能分享你的数据样本吗?
回复:遍历具有相同字符串的列名并创建子集@uday_guntupalli感谢所有的建议。 在发布任何内容之前,我会牢记在心。
我已经在下面发布了我的代码,它工作得非常好。 但是我需要循环运行这段代码。
我有我的原始数据表“表 1”。 它有 300 列,例如 ("Timestamp"、"donsteedOccupancy"、"Name("Raeford, NC Temp")"、"x Ahu1 y"、 “x Ahu1 z”,“x Ahu1 m”,...“x Ahu2 y”,“x Ahu2 z”,“x Ahu2 m”……“x Ahu70 y”,“x Ahu70 z” , “x Ahu70 m”。
我想从主数据表创建一个子集,前 3 列("Timestamp"、"donsteedOccupancy"、"Name("Raeford, NC Temp")")以及全部列名组成“阿虎1”到一个新的数据表并执行我在代码中提到的各种操作。(创建额外的列、删除列、更改列属性和生成图形)。
所以基本上在这段代码中有“Ahu1”,它必须被替换为“Ahu[i]”并在循环中运行。
我想做这样的事情。
For( i=0; i<= 52, i++
Data Table("Sheet1") << subset(
Output table( "Ahu[i]"),
columns(Timestamp,..., "x Ahu[i] y" , "x Ahu[i] z" , "x Ahu[i] m"));
Ahu[i]_dt= Data Table("Ahu[i]");
.
.
.
Close( Ahu[i]_dt, save("Ahu[i].jmp") );
代码中具有“Ahu1”的所有字段都必须替换为“Ahu[i]”
谢谢您的帮助。
original_dt = Current Data Table();
/* Sheet 1 is my original data table. I am creating a subset from original sheet which has column names as : Timestamp,donsteedOccupancy, Name( "Raeford, NC Temp" )
and all the columns which has a string "Ahu1". I am naming this output table as Ahu1.*/
Data Table( "Sheet1" ) << Subset(
Output Table( "Ahu1", link to original data table( 0 ) ),
All rows,
columns(
:Timestamp,
:donSteedOccupancy,
:Name( "Raeford, NC Temp" ),
:DonSteedES Ahu1 ClgVlvCmd,
:DonSteedES Ahu1 HtgVlvCmd,
:DonSteedES Ahu1 DaT,
:DonSteedES Ahu1 SaFanCmd,
:DonSteedES Ahu1 ZnT,
:DonSteedES Ahu1 ZnTStpt
)
);
/* Assigning the output data table to "Ahu1_dt" */
Ahu1_dt = Data Table( "Ahu1" );
/* Creating new columns called "Occupancy and SafanCmd" with formula's and deleting the formula link and also the original column's */
Ahu1_dt << New Column( "Occupancy",
character,
Nominal,
Formula( Munger( :donSteedOccupancy, Length( :donSteedOccupancy ) - 4, Length( :donSteedOccupancy ) ) )
);
Column( "Occupancy" ) << delete formula;
Ahu1_dt << delete columns( "donSteedOccupancy" );
Ahu1_dt << New Column( "SaFanCmd",
character,
Nominal,
Formula( Munger( :DonSteedES Ahu1 SaFanCmd, Length( :DonSteedES Ahu1 SaFanCmd ) - 4, Length( :DonSteedES Ahu1 SaFanCmd ) ) )
);
Column( "SaFanCmd" ) << delete formula;
Ahu1_dt << delete columns( "DonSteedES Ahu1 SaFanCmd" );
/* Using Recode to change values for columns "Occupancy and SaFanCmd " and also changing the column Data Types*/
Ahu1_dt << Column( "Occupancy" );
For Each Row( :Occupancy = Match( :Occupancy, " 1min", " 1", " 0min", " 0", :Occupancy ) );
Column( "Occupancy" ) << Data type( character ) << Set Data Type( Numeric );
Ahu1_dt << Column( "SaFanCmd" );
For Each Row( :SaFanCmd = Match( :SaFanCmd, " 1min", " 1", " 0min", " 0", :SaFanCmd ) );
Column( "SaFanCmd" ) << Data type( character ) << Set Data Type( Numeric );
/* Changing Format for the column's "DonSteedES Ahu1 ClgVlvCmd" and "Ahu1_dt:DonSteedES Ahu1 HtgVlvCmd" */
Ahu1_dt:DonSteedES Ahu1 ClgVlvCmd << Format( "percent" );
Ahu1_dt:DonSteedES Ahu1 HtgVlvCmd << Format( "percent" );
/* Changing Modeling type for the column : SaFanCmd */
Column( "SaFanCmd" ) << Modeling type( continuous );
/* Generating a Graph using Graph Builder for "Ahu1_dt" and assigning it to a object called "optstartgraph" .*/
optstartgraph = Ahu1_dt << Graph Builder(
Size( 1377, 923 ),
Variables(
X( :Timestamp ),
Y( :DonSteedES Ahu1 ClgVlvCmd ),
Y( :DonSteedES Ahu1 HtgVlvCmd, Position( 1 ) ),
Y( :Name( "Raeford, NC Temp" ) ),
Y( :DonSteedES Ahu1 DaT, Position( 2 ) ),
Y( :DonSteedES Ahu1 ZnT, Position( 2 ) ),
Y( :DonSteedES Ahu1 ZnTStpt, Position( 2 ) ),
Y( :SaFanCmd, Position( 2 ), Side( "Right" ) ),
Color( :Occupancy )
),
Elements( Position( 1, 1 ), Line( X, Y( 1 ), Y( 2 ), Color( 0 ), Legend( 5 ) ), Heatmap( X, Legend( 8 ) ) ),
Elements(
Position( 1, 2 ),
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Color( 0 ), Legend( 6 ) ),
Line( X, Y( 5 ), Color( 0 ), Legend( 7 ) ),
Heatmap( X, Legend( 9 ) )
),
SendToReport(
Dispatch( {"Line[DonSteedES Ahu1 ClgVlvCmd...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Heatmap[DonSteedES Ahu1 ClgVlvCmd...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Line[Raeford, NC Temp...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Line[SaFanCmd] (right)"}, "", OutlineBox, {Close( 0 )} ),
Dispatch( {"Heatmap[Raeford, NC Temp...]"}, "", OutlineBox, {Close( 0 )} ),
Dispatch(
{},
"Timestamp",
ScaleBox,
{Min( 3537633600 ), Max( 3538263600 ), Interval( "Hour" ), Inc( 1 ), Minor Ticks( 0 ), Label Row( Label Orientation( "Angled" ) )}
),
Dispatch( {}, "DonSteedES Ahu1 ClgVlvCmd", ScaleBox, {Min( 0 )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties(
0,
{Transparency( 0.35 ), gradient(
{Color Theme(
{"mine", 16387, {{79, 16, 79}, {119, 0, 119}, {42, 63, 255}, {0, 170, 170}, {0, 227, 0}, {221, 221, 0}, {238, 119, 0},
{252, 11, 11}, {158, 33, 33}}, {0, 0.193732193732194, 0.2, 0.495726495726496, 0.501424501424502, 0.507122507122507,
0.943019943019943, 0.95, 0.954415954415954}}
)}
)}
)
), Legend Model(
9,
Properties(
0,
{Transparency( 0.35 ), gradient(
{Color Theme(
{"mine", 16387, {{79, 16, 79}, {119, 0, 119}, {42, 63, 255}, {0, 170, 170}, {0, 227, 0}, {221, 221, 0}, {238, 119, 0},
{252, 11, 11}, {158, 33, 33}}, {0, 0.193732193732194, 0.2, 0.495726495726496, 0.501424501424502, 0.507122507122507,
0.943019943019943, 0.95, 0.954415954415954}}
)}
)}
)
)}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {5, [0, 1], 8, [2], 6, [-3, -3, 4, 5], 7, [-3], 9, [3]} ), Position( {0, 1, 2, -3, -3, 4, 5, -3, 3} )}
)
)
);
/*Saving the object in jpg format to a specfied file location. */
optstartgraph << Save Picture( "C:\Projects\Projects\Hoke\Year 1\Jmp\Year 0\DonSteed\Feb16\Ahu1.jpg", "JPG" );
/* Closing the object */
optstartgraph << close window;
/* close and save the data table "Ahu1_dt" */
Close( Ahu1_dt, save("C:\Projects\Projects\Hoke\Year 1\Jmp\Year 0\DonSteed\Feb16\Ahu1.jmp") );
回复:遍历具有相同字符串的列名并创建子集@himajafeb8 ,
一些建议,
1. 当您分享代码时,请使用“Insert JSL Script”或“Insert Code”选项,这样代码的格式可以让其他人轻松阅读您分享的内容。
2.请分解您的问题并解释代码的哪一部分实际上给您带来了问题。
根据您的标题,我认为执行以下操作会起作用。 但是,如果您有更多问题,请分解:
Clear Log(); Clear Globals();
// Open Sample Data
dt = Open( "$SAMPLE_DATA/Football.jmp" );
// Get Column Names
ColNames = dt << Get Column Names("String");
// Select Desired Columns
DesTerm = "Speed";
DesCols = {}; // Initialize empty list to store selected columns
for(i = 1 , i <= N Items(ColNames), i++,
If(Contains(ColNames[i],DesTerm),
Insert Into(DesCols,i);
Col = Column(dt,i);
Col << Set Selected(1);
);
);
// Subset
dt1 = dt << Subset(Selected Rows(0),Selected Columns(1));