將單元格(在 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),
公式(隨機均勻()),
設置選定
),
新列(“結果 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 = Expr(
dt2 << 疊加圖(
Y(列(2)),
分離軸(1),
通過缺失連接(1)
)
);
journgraph1 = Eval(graph1)<<獲取日誌;
New Window("報告窗口" || tn[1],
文本框(“圖表” || tn[1]),
日記框(journgraph1)
);
關閉(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:/Users/..../Tests/” ||評估(解析( :測試名稱)) || “.jsl” ) ; 1 , 0 ) ;"
這裡的“測試”是我的第二個腳本文件夾(當用戶單擊表格中的一行時將使用該文件夾)。
我的第一個問題是我找不到解決方法,因為引號引起了問題,第二個問題是我在這裡所做的都是我希望與我一起工作的其他人成為的工具的一部分能夠使用。 是否有可能看到我現在有第二個腳本正在通過其文件路徑訪問(該腳本在我的桌面上)?
再次感謝您的幫助
奧利維亞
回复:將單元格(在 JMP 表中)鏈接到腳本?首先,檢查路徑字符串。 第一個參數應僅包含腳本目錄的路徑,因此以 /(斜杠)結尾。
要將選定的 TestName 傳遞給變量,您需要更加明確:
名稱=:測試名稱[(當前數據表() <<獲取選定的行)[ 1 ]]
此代碼可以通過列公式(參見下面的示例)或在調用的腳本中運行。
如果(已選中(行狀態(排())) ,名稱=:測試名稱[(當前數據表() <<獲取選定的行)[ 1 ]] ;包括( “C:/Users/..../your_script_folder/” ||評估(解析( :測試名稱)) || “.jsl” ) ; 1 , 0 ) ;
回复:將單元格(在 JMP 表中)鏈接到腳本?
是的,這正是我想要做的。
我遇到的問題是我需要將該測試名稱恢復到 JMP 腳本中,以便我可以將它發送到 R 以讓我的函數完成它的工作......
我試過這個:
在我的表格的另一列中:
If(Selected(Row State(Row())), Include("C:/Users/....jsl" || Eval(Parse(:TestName)) || ".jsl"); 1, 0)
然後在腳本頁面中:
tname = TestName << 獲取文本;
rconn << 發送(tname,R 名稱(“tname”));
我顯然做錯了什麼,因為它不起作用......
回复:將單元格(在 JMP 表中)鏈接到腳本?如果您的意思是通過選擇表中的一行來觸發腳本操作,我建議您查看這個演示在 JMP 文件交換中。 可以通過使用 Ian Cox 在該演示中使用的技巧選擇一行來調用 jsl 能夠執行的任何類型的操作。
在他的示例中,腳本實際上是表格單元格中的字符串,但應該可以調用表格腳本,或者為什麼不使用 Include() 函數調用獨立腳本。
例如,在隱藏列中嘗試下面的列公式,以運行與字符列“testname”中的單元格內容完全命名的腳本。
如果(已選中(行狀態(排())) ,包括( “你的路” ||評估( :測試名稱) || “.jsl” ) ; 1 , 0 )
如果第三行中的 testname 是“ANOVA”,那麼當選擇第三行時,將運行保存在路徑為“yourpath”的目錄中的腳本 ANOVA.jsl(手動但我猜也是通過腳本)。