<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;
);
);