R 集成,R 提交文件問題你好,
更新:我找到了在評論中發布的解決方法。
此 JSL 腳本運行沒有任何問題(我在 Windows 10 Pro 64 位元下使用 JMP 16.0.0 (512257))並產生預期的 png 輸出格圖在 JMP 中:
LoadExprs = Expr(
InitR = Expr(
R Init();
R Submit( "
library(dplyr)
library(ggplot2)
library(palmerpenguins)
" );
);
MakePlot = Expr(
R Submit(
Eval Insert(
"\[
ggplot(data = penguins, aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
geom_point() +
facet_wrap(. ~ island, nrow = 3)
]\
"
);
);
);
CapturePlot = Expr(
JMP_plot = R Get Graphics( png );
New Window( "Imported Plot", Picture Box( JMP_Plot ) );
);
RunClose = Expr(
R Term(); //Close r connection
);
);
LoadExprs;
InitR;
MakePlot;
CapturePlot;
RunClose;如果我嘗試使用完全相同的 R 程式碼直接呼叫 R 腳本,則會失敗並顯示錯誤訊息「取得 ''png」的資料失敗」。
這是 JSL 腳本:
LoadExprs = Expr(
InitR = Expr(
R Init();
);
RunR = Expr(
R Submit File( "C:\Users\xxx\R_projects\JMP\R_JPM_integration_1.R" );
);
CapturePlot = Expr(
JMP_plot = R Get Graphics( png );
New Window( "Imported Plot", Picture Box( JMP_Plot ) );
);
RunClose = Expr(
R Term(); //Close r connection
);
);
LoadExprs;
InitR;
RunR;
CapturePlot;
RunClose;
這個簡化的 JSL 腳本是我的第一次嘗試,也失敗並顯示相同的錯誤代碼:
R Init();
R Submit File( "C:\Users\xxx\R_projects\JMP\R_JPM_integration_1.R" );
R Get Graphics( png );
R Term();
這是我用於此測試的簡單 R 腳本:
library(dplyr)
library(ggplot2)
library(palmerpenguins)
ggplot(data = penguins, aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
geom_point() +
facet_wrap(. ~ island, nrow = 3)
這與第一個腳本中的 R 程式碼相同。
R Submit File 呼叫有問題嗎? 我缺什麼?
我更願意使用R 提交文件因為它節省了打字工作。
自動化和腳本編寫資料混合與清理視窗回覆:R 集成,R 提交文件問題我不需要視窗()函數呼叫。 只需透過呼叫顯式繪製陰謀功能夠了!
我確實發現 JMP 錯誤訊息( “獲取“png”資料失敗” )一旦我使用就會消失視窗R 中的函數調用 我最終得到一個空窗口,因為沒有明確繪製任何內容。
下面的程式碼與 JSL scipt 結合使用可以很好地工作R 提交文件。
library(dplyr)
library(ggplot2)
library(palmerpenguins)
p <- ggplot(data = penguins, aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
geom_point() +
facet_wrap(. ~ island, nrow = 3)
plot(p)
回覆:R 集成,R 提交文件問題我找到了一種解決方法,即強制 R 打開圖形視窗並將圖形明確繪製到該視窗:
library(dplyr)
library(ggplot2)
library(palmerpenguins)
windows(800,600)
p <- ggplot(data = penguins, aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
geom_point() +
facet_wrap(. ~ island, nrow = 3)
plot(p)
我現在需要擔心地塊大小,但這是可以接受的。 以下是帶有 JMP 圖形視窗的腳本的螢幕截圖:

回覆:R 集成,R 提交文件問題謝謝!
的確,提交工作得很好,請參閱下面的程式碼。
不過,我想確定如何製作R 提交文件工作,因為它可以防止複製(可能很大)R 腳本。
您對原因的評估R 提交文件不起作用聽起來似乎有道理,但需要 SAS/JMP 專家來確認。
LoadExprs = Expr(
InitR = Expr(
R Init();
);
RunR = Expr(
R Submit ( "
library(dplyr)
library(ggplot2)
library(palmerpenguins)
ggplot(data = penguins, aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
geom_point() +
facet_wrap(. ~ island, nrow = 3)
" );
);
CapturePlot = Expr(
JMP_plot = R Get Graphics( png );
New Window( "Imported Plot", Picture Box( JMP_Plot ) );
);
RunClose = Expr(
R Term(); //Close r connection
);
);
LoadExprs;
InitR;
RunR;
CapturePlot;
RunClose;
回覆:R 集成,R 提交文件問題我認為使用 R Submit File 時,繪圖不會寫入控制台(我可能是錯的,我還沒有進行足夠的挖掘來確定)。我透過將 R 檔案作為文字讀取到 JMP 中,然後使用 R Submit 提交來解決了這個問題。
回覆:R 集成,R 提交文件問題我在 Windows 10 64 位元上運行的 16.2 和 17.0 下運行了您的程式碼,並且得到了在 JMP 下運行時,「取得「png」的資料失敗」。