將單元格(在 JMP 表中)連結到腳本?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我有一個 JMP 腳本,它會產生一個(分析資料)表,第一列中包含測試名稱。
我想知道是否可以將每個測試名稱連結到一個腳本,然後產生一系列圖表。
有誰知道這是否可能?
謝謝,
奧莉維亞
回覆:將儲存格(在 JMP 表中)連結到腳本?我真的很喜歡實現這個想法。如果我的腳本可以處理所選的多行(例如某些組合圖),有沒有辦法在啟動腳本之前等待所有行被選擇(例如按住 cntrl 鍵時)?
例如,如果我想選擇第 1,3,5 行...,當前我必須選擇第 1 行,這會立即觸發腳本,然後關閉從腳本生成的窗口,然後選擇第 3 行(按住 cntrl 鍵) ,它會立即觸發腳本,然後關閉從腳本生成的視窗(將1 和3 組合起來),然後選擇第5 行(按住cntrl 鍵)...最終會用組合的1, 3, 5. 是否可以選擇1、3 和5...,然後啟動腳本?
回覆:將儲存格(在 JMP 表中)連結到腳本?謝謝,這真的很有幫助! 我終於讓它發揮作用了
回覆:將儲存格(在 JMP 表中)連結到腳本?下面的腳本適用於一個具有公式列的表,其中包含一個從行產生圖表的腳本。
當選擇一行時,所選行的幾列的內容將被放入子集表中,該子集表會被轉置,以便可以使用疊加圖來繪製圖表。 公式列中的原始腳本開始看起來有很大不同,它包含在表格腳本下方。
(將表格腳本複製到腳本視窗並運行腳本)
新表(“結果表”,
新增行( 5 ),
新專欄(“分析”,
特點,
標稱,
設定值( {"ANOVA", "Apple", "Bannana", "Orange", "Peach"} )
),
新列(“結果 1”,
數字,
連續的,
格式(“最佳”,12),
公式(隨機均勻())
),
新列(“結果 2”,
數字,
連續的,
格式(“”,9),
公式(隨機均勻())
),
新列(“結果 3”,
數字,
連續的,
格式(“最佳”,12),
公式(隨機均勻())
),
新列(“結果 4”,
數字,
連續的,
格式(“最佳”,12),
公式( 隨機 Uniform() ),
設定選定
),
新列(“結果 5”,
數字,
連續的,
格式(“最佳”,12),
公式(隨機均勻())
),
新列(“結果 6”,
數字,
連續的,
格式(“最佳”,12),
公式(隨機均勻())
),
新列(“結果 7”,
數字,
連續的,
格式(“最佳”,12),
公式(隨機均勻())
),
新列(“結果 8”,
數字,
連續的,
格式(“最佳”,12),
公式(隨機均勻())
),
新列(“結果 9”,
數字,
連續的,
格式(“最佳”,12),
公式(隨機均勻())
),
New Column( "帶有用於製作圖表的公式的列",
數字,
連續的,
格式(“最佳”,12),
公式(
如果(選定(行狀態()),
評估(
解析(
名稱預設為此處( 1 );
清晰的符號(1);
dt0 = 當前資料表();
rn = dt0 << 取得選定的行;
tn = dt0:分析[rn];
dt1 = 資料表(“結果表”) <<
子集(
輸出表( tn[1] ),
選定的列( 0 ),
選定的行( 0 ),
行(rn)
);
dt2 = dt1 << 列(
:結果1,
:結果2,
:結果 3,
:結果 4,
:結果 5,
:結果6,
:結果7,
:結果8,
:結果 9
)`;
圖1 = 表達式(
dt2 << 疊加圖(
Y( 列( 2 ) ),
分離軸( 1 ),
連接缺失( 1 )
)
);
journgraph1 = Eval( graph1 ) << 取得日誌;
New Window( "報告視窗 " || tn[1],
文字方塊(“圖表” || tn[1] ),
日記盒(jourgraph1)
);
關閉(dt1,不儲存);
關閉(dt2,不儲存);
)
)
)
)
),
設定行狀態( [0, 0, 0, 0, 1] )
)
這是要貼到公式列中的腳本
( 1 ) ;
() ;
(已選擇(行狀態() )
(
(
( 1 ) ;
( 1 ) ;
=目前數據表() ;
= dt0 <<取得選定的行;
= dt0 :分析[ rn ] ;
=數據表( 「結果表」 ) <<子集(
1 ] ) ,
0 ) ,
0 ) ,
//,無形的
;
= dt1 <<轉置(
:結果1 ,
:結果2 ,
:結果3 ,
:結果4 ,
:結果5 ,
:結果6 ,
:結果 7 ,
:結果 8 ,
:結果 9 ,
:第11欄
,
:分析[ rn ] ) , //這不會在公式中翻譯
1 ] || “對於圖表” ) //,無形的
;
=表達式( dt2 <<疊加圖(是(柱子( 2 ) ) ,單獨的軸( 1 ) ,連接缺失( 1 ) )) ;
=評估(圖1 ) <<獲取期刊;
( “報告視窗” ||總氮[ 1 ] ,文字方塊( “圖表” ||總氮[ 1 ]) ,軸箱(日誌圖1 )) ;
( dt1 ,沒有保存) ;
( dt2 ,沒有保存) ;
//解析結束
//評估結束
; //如果結束
回覆:將儲存格(在 JMP 表中)連結到腳本?謝謝
我在將所有這些添加到我的腳本中時遇到問題。
我一直在嘗試做的是獲取表格,然後添加一列
」已選擇(行狀態(排())) ,名稱=:測試名稱[(目前數據表() <<取得選定的行)[ 1 ]] ;
包括( “C:/用戶/..../測試/” ||評估(解析( :測試名稱)) || “.jsl” ) ; 1 , 0 ) ;”
這裡的「測試」是我的第二個腳本資料夾(當使用者點擊表中的一行時將使用的資料夾)。
我的第一個問題是,我找不到一種方法來做到這一點,因為引號引起了問題,第二個問題是,我在這裡所做的都是我希望與我一起工作的其他人使用的工具的一部分。能夠使用。 看到我現在有第二個腳本可以透過其檔案路徑存取(該腳本位於我的桌面上),這是否可能?
再次感謝您的幫助
奧莉維亞
回覆:將儲存格(在 JMP 表中)連結到腳本?首先,檢查路徑字串。 第一個參數應僅包含腳本目錄的路徑,因此以 /(斜線)結尾。
要將選定的 TestName 傳遞給變量,您需要更明確:
名稱=:測試名稱[(目前數據表() <<取得選定的行)[ 1 ]]
此程式碼可以透過列公式(請參閱下面的範例)或在呼叫的腳本中運行。
如果(已選擇(行狀態(排())) ,名稱=:測試名稱[(目前數據表() <<取得選定的行)[ 1 ]] ;包括( “C:/使用者/..../your_script_folder/” ||評估(解析( :測試名稱)) || “.jsl” ) ; 1 , 0 ) ;
回覆:將儲存格(在 JMP 表中)連結到腳本?
是的,這正是我想做的事。
我遇到的問題是我需要將該測試名稱返回到 JMP 腳本中,以便我可以將其發送到 R 以便我的函數完成其工作...
我試過這個:
在我的表格的附加列中:
If(Selected(行狀態(Row())), Include("C:/Users/....jsl" || Eval(Parse(:TestName)) || ".jsl"); 1, 0)
然後在腳本頁面中:
tname = 測試名稱 << 取得文字;
rconn << 傳送(tname,R 名稱("tname"));
我顯然做錯了什麼,因為它不起作用......
回覆:將儲存格(在 JMP 表中)連結到腳本?如果您的意思是透過選擇表中的一行來觸發腳本操作,我建議您看一下這個演示在 JMP 文件交換中。 jsl 能夠執行的任何類型的操作都可以透過使用 Ian Cox 在該示範中使用的技巧選擇一行來呼叫。
在他的範例中,腳本實際上是表格單元格中的字串,但應該可以呼叫表格腳本,或者為什麼不使用 Include() 函數的獨立腳本。
例如,嘗試在隱藏列中使用下面的列公式來執行與字元列「testname」中的儲存格內容完全相同的腳本。
如果(已選擇(行狀態(排())) ,包括( “你的路徑” ||評估( :測試名稱) || “.jsl” ) ; 1 , 0 )
如果第三行中的 testname 是“ANOVA”,則在選擇第三行時,將運行保存在路徑為“yourpath”的目錄中的腳本 ANOVA.jsl(手動,但我猜也可以透過腳本運行)。