子集腳本<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMP 用戶您好,
我能夠生成腳本來對大型數據文件進行子集化,但隨後必須手動命名這些文件並通過第二個和第三個子集腳本單獨運行它們。 有沒有辦法迭代運行子集命令並保存文件以包含子集定義?
例如:按第1 列(紅、藍、綠)對文件“顏色”進行子集化,以生成並保存文件:Colors.red.jmp、Colors.blue.jmp、Colors.green.jmp,然後按第8 列(明亮、淺色)對這些文件進行子集化,深色)創建和保存文件
顏色.red.bright.jmp、顏色.red.light.jmp、顏色.red.dark.jmp、顏色.blue.bright.jmp、顏色.blue.light.jmp、顏色.blue.dark.jmp、顏色。綠色.bright.jmp、顏色.green.light.jmp、顏色.green.dark.jmp。
列的位置會有所不同。
謝謝 !!!
回复:子集腳本那還是不行。 我還添加了更多時間 (30)、(90) 等。 我能夠使文件受到保存保護,這意味著我無法在沒有說明是否應保存它們的情況下關閉它們,但命名仍然是 myfile 2 3.jmp 等子集的子集。 我認為子集變量列表不知何故關閉了。 我將在周末排除更多故障,並且可以向習慣使用我們的 JMP 版本的人尋求幫助。
非常感謝您的幫助和建議,祝您週末愉快,MS!
回复:子集腳本可能是性能問題。 嘗試在兩個 For 循環中插入 Wait(0) 命令,以確保在 JMP 嘗試保存表之前表已完成。
回复:子集腳本這很奇怪。 路徑是正確的,因為我用它在同一目錄中打開了一個dt。 它創建了所有文件,但它們的名稱類似於“MyFile 2 3.jmp 子集的子集”、“MyFile 2 2.jmp 子集的子集”等。這些文件正是我想要的,令人驚奇的是該腳本創建了它們,不幸的是它沒有正確命名它們並保存它們。 最壞的情況是,我手動命名它們,這仍然節省了我大量的時間!
感謝您的努力。
埃里克
回复:子集腳本我剛剛在 JMP 9.0.3 中嘗試了該腳本,它運行得很好,就像在 JMP 10 中一樣。
檢查你的路徑變量。 它必須是一個字符串,並且以 / 開頭和結尾。
例如,在我的 Mac 上,這是有效的: myPath = "/Users/MS/Desktop/"
回复:子集腳本你好女士,
那已經非常接近了!它創建了所有子集,但沒有保存任何表。 我收到此消息:無法保存文件。 未知數據目標。
我正在使用 JMP 9,所以我想知道創建文件的命令是否存在差異,或者我是否執行了錯誤的操作? 我將正確的路徑放入腳本中。
謝謝,
埃里克
回复:子集腳本至少在 JMP 10 中有一個“子集依據”複選框。 如果選擇,將自動生成所選列的每個級別的子集。 如果已知按列的數量,則很容易在 JSL 中實現該功能。 然而,概括這一點比我想像的要棘手。
這種基於將順序生成的子集插入列表(列表內)的方法似乎可行:
//示例表
dt =新表( “顏色” ,
添加行( 12 ) ,
新專欄( “顏色” ,
特點,
標稱,
設定值( { “紅色的” , “紅色的” , “紅色的” , “紅色的” , “藍色的” , “藍色的” , “藍色的” , “藍色的” , “藍色的” , “綠色的” , “綠色的” , “綠色的” } )
) ,
新專欄( “強度” ,
特點,
標稱,
設定值(
{ “明亮的” , “明亮的” , “黑暗的” , “光” , “光” , “光” , “光” , “黑暗的” , “黑暗的” , “黑暗的” , “光” , “明亮的” }
)
) ,
新專欄( “結束” ,
特點,
標稱,
設定值(
{ “啞光的” , “空白的” , “啞光的” , “空白的” , “啞光的” , “空白的” , “啞光的” , “空白的” , “啞光的” , “空白的” , “啞光的” , “空白的” }
)
) ,
新專欄( “稠度” ,特點,標稱)
) ;
對於每一行( :濃度=顏色||強度||結束) ; // 只是為了檢查它是否正常工作...
// 示例表結束
// 腳本從這裡開始
列= {顏色,強度,結束} ; // 任意 nr 個按列的子集(按層次順序)
恩特= N表() ; //當前打開的表數量
子列表=評估清單( { dt <<子集(經過(列[ 1 ] ) )} ) ; //第一級子集
//遞歸地生成低層子集
為了(我= 2 ,我<= N 項(列) ,我++,
插入(子列表,評估清單( {評估(子列表[我- 1 ] ) <<子集(經過(列[我] ) )} ) )
) ;
// 命名並保存所有子集
我自己的路= “小路” ; //更改為所需路徑
為了(我= 1 ,我<= N表() -恩特,我++,
電視=數據表(我) <<獲取表變量名; // 級別存儲為表變量
子名= {} ;
為了( j = 1 , j <= N 項(電視) , j ++,
插入(子名,數據表(我) <<獲取表變量(電視[ j ] ) )
) ;
插入(子名, dt <<得到名字) ;
反向進入(子名) ;
數據表(我) <<節省(我自己的路||連接項目(子名, “。” ) ) ;
) ;
// 結束腳本 //close all(數據表);
回复:子集腳本謝謝PMroz,
問題是我確實需要保留中間文件,並且我給出的示例是編造的,列名稱每次都會更改。
謝謝,
埃里克
回复:子集腳本我有一個應用程序,需要以幾種不同的方式對大型數據集進行子集化,並對每個子集運行相同的分析。我沒有創建單獨的數據集,而是使用 SELECT 和 EXCLUDE 的組合來使大型數據集中的數據可供分析。例如:
dt =新表( “顏色示例” ,
添加行( 12 ) ,
新專欄( “顏色” ,特點,標稱,
設定值(
{ “紅色的” , “紅色的” , “紅色的” , “紅色的” , “藍色的” , “藍色的” , “藍色的” , “藍色的” , “藍色的” ,
“綠色的” , “綠色的” , “綠色的” } ) ) ,
新專欄( “強度” ,特點,標稱,
設定值(
{ “明亮的” , “明亮的” , “黑暗的” , “光” , “光” , “光” , “光” , “黑暗的” ,
“黑暗的” , “黑暗的” , “光” , “明亮的” } ) ) ) ;
號=行數( dt ) ;
顏色列表= { “紅色的” , “藍色的” , “綠色的” } ;
強度列表= { “明亮的” , “光” , “黑暗的” } ;
為了(我= 1 ,我<=尼特姆斯(顏色列表) ,我++,
單色=顏色列表[我] ;
為了( k = 1 , k <=尼特姆斯(強度列表) , k ++,
單一強度=強度列表[我] ;
// 排除與此顏色和強度不匹配的所有行
dt <<選擇地點( :顏色==單色& :強度==單一強度)
<<反轉行選擇<<排除;
已選擇=編號-行數( dt <<獲取選定的行) ;
dt <<清除選擇;
如果(已選擇> 0 ,
// 在這裡對 dt 進行分析。僅使用未排除的行。
// 我發現忽略排除行的唯一命令是 Tables >> Summary
打印( “#行:” ||字符(已選擇) || “ 顏色: ” ||單色||
“ 強度: ” ||單一強度) ;
) ;
// 清理下一個選擇
dt <<清除行狀態;
) ;
) ;