<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我有一个脚本打开多个数据表并运行一个算法,该算法创建一个新列并根据每个文件的结果分配颜色。然后它连接它们并根据您选择的列创建子集表。
问题是当它连接数据表时,颜色不会出现在新的连接数据表中,也不会出现在子集中。我的脚本如下。我还附上了脚本和数据表。谢谢。
名称默认为此处 ( 1 ) ;
//使用'PickFile()'获取要打开的文件列表(仅限Windows)
的fileList = 选择文件 (
“选择一个或多个文件” , //提示
“$桌面” , //初始文件夹
{ “JMP文件| jmp; jsl; jrn; csv” , “所有文件| *” } , //要应用的文件过滤器列表(由OS / X忽略)
1 , //要应用的初始文件过滤器(上面列表中的项目索引)
0 , //保存标志 - 指定“保存”或“打开”窗口。分别设置值1或0。
空 () , //默认文件
多 // Multiple - 如果'Save Flag'= 0,则使用值1允许打开多个文件(OS / X忽略)
) ;
//如果只选择了一个文件,则fileList将不是列表,因此我们需要为自己构建它
如果 ( !是列表 ( 的fileList ) ,
的fileList = 评估列表 ( { 的fileList } )
) ;
//打开文件并存储相应的JMP表名
表名 = {} ;
对于 ( F = 1 , F <= N项 ( 的fileList ) , F ++,
dttemp = 打开 ( 的fileList [ F ] ) ;
插入 ( 表名 , dttemp << 的getName ) ;
dttemp = 当前数据表 () ;
dttemp << 新栏目 ( “圣/ Si的” ,数字 ,连续 ,格式 ( “最好” ,五 ) ,
式 ( : “转向评级” / : “车的大小” ) ) ;
dttemp << 新栏目 ( “V1-ST /硅” ,数字 ,连续 ,格式 ( “最好” ,五 )) ;
对于 ( 一世 = 1 ,一世 <= N行 ( dttemp ) ,一世 ++,
如果 ( : “圣/ Si的” [ 一世 ] > ( Col Mean ( : “圣/ Si的” ) + ( Col Maximum ( : “圣/ Si的” ) - Col Mean ( : “圣/ Si的” )) * 1 / 2 ) , : “V1-ST /硅” [ 一世 ] = 3 ,
如果 ( : “圣/ Si的” [ 一世 ] > ( Col Mean ( : “圣/ Si的” ) - ( Col Mean ( : “圣/ Si的” ) - 最低限度 ( : “圣/ Si的” )) * 1 / 2 ) , : “V1-ST /硅” [ 一世 ] = 2 ,
如果 ( : “圣/ Si的” [ 一世 ] > 最低限度 ( : “圣/ Si的” ) , : “V1-ST /硅” [ 一世 ] = 1 , : “V1-ST /硅” [ 一世 ] = 0 )
)
) ;
) ;
//逐行着色
对于 ( 一世 = 1 ,一世 <= N行 ( dttemp ) ,一世 ++,
如果 ( : “圣/ Si的” [ 一世 ] > ( Col Mean ( : “圣/ Si的” ) + ( Col Maximum ( : “圣/ Si的” ) - Col Mean ( : “圣/ Si的” )) * 1 / 2 ) ,
柱 ( dttemp , “V1-ST /硅” ) << 彩色细胞 ( 3 , { 一世 } ) ,
如果 ( : “圣/ Si的” [ 一世 ] > ( Col Mean ( : “圣/ Si的” ) - ( Col Mean ( : “圣/ Si的” ) - 最低限度 ( : “圣/ Si的” )) * 1 / 2 ) ,
柱 ( dttemp , “V1-ST /硅” ) << 彩色细胞 ( 9 , { 一世 } ) ,
如果 ( : “圣/ Si的” [ 一世 ] > 最低限度 ( : “圣/ Si的” ) ,
柱 ( dttemp , “V1-ST /硅” ) << 彩色细胞 ( 4 , { 一世 } ) ,
柱 ( dttemp , “V1-ST /硅” ) << 彩色细胞 ( 4 , { 一世 } )
)
)
) ;
) ;
//将数据表附加在一起
如果 ( F == 1 ,
DT = dttemp ,
DTX = DT << 加入 ( 同 ( dttemp ) ,
保留主表顺序 () ,
输出表名称 ( “连锁卡拉特” ) ,
保留列属性 ,
) ;
关 ( dttemp , NOSAVE ) ;
关 ( DT , NOSAVE ) ;
DT = DTX
) ;
) ;
//创建列复制器以复制文件
DT = 当前数据表 () ;
DT2 = DT << 子集 () ;
你好MS,
非常感谢!你是最棒的。这是正确的答案。我在纠正我的代码时犯了一个错误,并在检查我的日志后纠正了它。
也许我误解了你的代码,但我尝试了JMP 12中的代码(在OS X上),选择了三个附加文件,输出表“Concatenated Carrat 2”获得了三列带有彩色单元格。
你收到任何错误信息吗?
如果使用column属性价值颜色对于着色细胞,细胞颜色可以保留在连接表中。
下面是您复制的代码,但现在每次创建新的“V1-St / Si”列时都会添加一个颜色列属性:
名称默认为此处 ( 1 );
//使用'PickFile()'获取要打开的文件列表(仅限Windows)
fileList = 选择文件 (
“选择一个或多个文件” , //提示
“$桌面” , //初始文件夹
{ “JMP文件| jmp; jsl; jrn; csv” , “所有文件| *” }, //要应用的文件过滤器列表(由OS / X忽略)
1 , //要应用的初始文件过滤器(上面列表中的项目索引)
0 , //保存标志 - 指定“保存”或“打开”窗口。分别设置值1或0。
空 (), //默认文件
多 // Multiple - 如果'Save Flag'= 0,则使用值1允许打开多个文件(OS / X忽略)
);
//如果只选择了一个文件,则fileList将不是列表,因此我们需要为自己构建它
如果 (!是列表 (的fileList),
fileList = 评估列表 ({的fileList})
);
//打开文件并存储相应的JMP表名
tableNames = {};
对于 (f = 1 ,f <= N项 (fileList),f ++,
dttemp = 打开 (的fileList);
插入 (tableNames,dttemp << 的getName );
dttemp = 当前数据表 ();
dttemp << 新栏目 ( “圣/ Si的” ,数字,连续,格式 ( “最好” ,五 ),公式(: “转向评级” /: “车的大小” ));
dttemp << 新栏目 ( “V1-ST /硅” ,
数字,
连续,
格式 ( “最好” ,五 )
<< 添加列属性 (设置属性( “价值颜色” ,{ 0 = 4 , 1 = 4 , 2 = 9 , 3 = 3 }),按颜色的颜色单元格)
);
对于 (i = 1 ,我<= N行 (dttemp),i ++,
如果 (: “圣/ Si的” >( Col Mean (: “圣/ Si的” )+( Col Maximum (: “圣/ Si的” ) - Col Mean (: “圣/ Si的” ))* 1 / 2 )
: “V1-ST /硅” = 3 ,
如果 (: “圣/ Si的” >( Col Mean (: “圣/ Si的” ) - ( Col Mean (: “圣/ Si的” ) - 最低限度 (: “圣/ Si的” ))* 1 / 2 )
: “V1-ST /硅” = 2 ,
如果 (: “圣/ Si的” > 最低限度 (: “圣/ Si的” )
: “V1-ST /硅” = 1 ,
: “V1-ST /硅” = 0
)
)
)
);
//将数据表附加在一起
如果 (f == 1 ,
dt = dttemp,
dtx = dt << 加入 (使用(dttemp),保留主表顺序(),输出表名称( “连锁卡拉特” ),保留柱属性,);
关 (dttemp,nosave);
关 (dt,nosave);
dt = dtx;
);
);