JMP 找到 R你好呀,
這裡是一個新手問題。 我喜歡使用 JMP,並且在 R 中有一些我想導入到 JMP 的數據。 我正在嘗試使用 JMP-to-R 接口(第一次在 JMP 中編寫腳本),但我真的不知道自己在做什麼。 但是,當我運行以下 JSL 腳本時,什麼也沒有發生;
test1 = Get R(test1);
我敢肯定還有很多事情要做,但我真的不知道如何繼續。 如果您對我如何開始將數據從 R 提取到 JMP 有一些建議,我很想听聽! 我在剛剛升級到 Windows 10 的 PC 上,所以我在想(但不知道是不是這樣)是 JMP 找不到我的 R 安裝位置。 同樣,這是我第一次嘗試 JSL 腳本,所以這可能是一個初學者的問題,但我不確定我在這裡做什麼。 謝謝!
回复:JMP 找到 R我就這個話題與 JMP Support 進行了交談;不幸的是,用戶無法按照我詢問的方式將數據幀從 R 拉到 JMP 中。 來自 JMP 支持:
JMP does not interact with R in this manner. When JMP initializes R, it starts a new session (environment). That session is completely isolated from R meaning, if you were to start a new R session, JMP would not recognize any of the environment variables (global or local). This is why your R data frame is unknown to JMP.
有幾種方法可以將數據從 R 拉入 JMP,但它們基本上都要求通過 JMP 腳本對話框運行腳本來“創建”R 中的數據框。 我一直在做選項 #3(讓 R 將數據幀寫入 csv 文件,然後用 JMP 打開 csv 文件),但選項 #2 很有趣。 當我嘗試時,不幸的是,我的計算機內存不足,因此對於超大數據幀來說,這可能不是一個可行的選擇。 這些是來自 JMP 支持的建議:
1. Use JMP's R Submit () to create the data frame. The use R Submit () and R Get () to bring the data frame into JMP. This is probably the mostly commonly used approach.
2. Use JMP's R Submit () to load the data frame via R and bring it back to JMP.
3. Lastly, you can also save the data frame from R as a CSV and open it in JMP using JSL's open function.
回复:JMP 找到 R請在此處發布他們的答案。 新領域!
回复:JMP 找到 R感謝您嘗試這個,馬克! 我會聯繫技術支持,看看他們對此有何看法。
回复:JMP 找到 R我只是嘗試使用連接,但效果並沒有好轉。
我以前從未遇到過這種情況。 我總是將我需要的東西發送到 R,運行 R 腳本,返回我想要的東西,然後在 JMP 中繼續前進。
我不相信這是不可能的。 我建議您聯繫 JMP 技術支持 (support@jmp.com) 並向他們尋求幫助。
回复:JMP 找到 R嗯,也許我想做的在這種情況下不起作用?
我有一個已經在 R 全球環境中的 data.frame(我/其他人曾在 R 中處理過它),我想將它拉入 JMP。 但是,根據我對我們對話的理解,我需要在 JMP 腳本對話框中運行整個 R 腳本,以便 JMP 能夠“看到”data.frame。 這個對嗎?
或者也許我在這裡錯過了另一個步驟。 如果我已經在 R 中創建了一個 data.frame(現在它位於 R 的“全局環境”中),那麼 JMP 仍然看不到它。 但是 JMP 可以看到它嗎? 在 R 中,我運行了以下命令:
test1 <- data.frame("x"=c(1,2,3,4),"y"=c(5,6,7,8))所以現在“test1”在 R 全局環境中。 但是由於某種原因,JMP 仍然無法“看到”它? 也許我可以做一些事情來使這個 data.frame 對 JMP 可見,而不必通過 JMP 腳本對話框重新運行 R 腳本?
回复:JMP 找到 R你如何在 R 中創建數據框? 當 JMP 連接到 R 時,您為什麼認為它存在於 R 中?
回复:JMP 找到 R是的,我認為您必須提交 R 代碼才能在與 JMP 連接期間使數據框在會話中處於活動狀態。 此示例“從頭開始”創建一個數據框並將其存儲在變量 d 中。 R Get() 調用可以請求它,因為它現在存在於 R 工作區中。 例如,在其他情況下,您也可能會打開一個文件或獲取一個數據框作為建模的結果。 除非您提交代碼以使其成為一種或另一種方式,否則 R 中不存在數據框。
Names Default to Here( 1 );
R Init();
R Submit(
"L3 <- LETTERS[1:3]
d <- data.frame(cbind(x=1, y=1:15), Group=sample(L3, 15, repl=TRUE))"
);
dt = R Get( d ) << New Data View;
R Term();回复:JMP 找到 R嗯,也許我在 R 中的 data.frame 無法供 JMP 訪問? 不過,我不確定為什麼。 當我從 JMP 運行示例腳本時,它能夠訪問數據幀。
R Init();
R Submit(
"
L3 <- LETTERS[1:3]
d <- data.frame(cbind(x=1, y=1:15), Group=sample(L3, 15, repl=TRUE))
"
);
R Get( d ) << NewDataView;
R Term();
但是,當我在 R 中創建數據框時,JMP 似乎無法訪問它。 我的 R 腳本如下:
test1 <- data.frame("x"=c(1,2,3,4),"y"=c(5,6,7,8))
生成的 data.frame 存儲在 R“全局環境”中,但是當我嘗試使用 R Get(test1) 訪問它時,它似乎無法識別這一點。
回复:JMP 找到 R您可能需要運行 R 腳本以確保在調用 R Get() 時數據框可用。 R Get() 的示例代碼打開一個名為 Big Class 的 JMP 數據表,將其發送給 R,然後將其返回給 JMP。 將其發送給 R 使其成為活動數據幀。 你在做什麼來使數據框在 R 中處於活動狀態?
這是另一個可能有幫助的示例,其中 R 腳本從 JMP 運行。
Names Default To Here( 1 );
R Init();
R Submit(
"x <- rnorm(1000)
hx <- hist(x, breaks=100, plot=FALSE)
plot(hx, col=ifelse(abs(hx$breaks) < 1.669, 4, 2))
x <- rnorm (100)
y <- x**2 + rnorm (100)
summary(y)"
);
Wait( 3 );
R Term();
您可能需要類似此示例的內容來確保 R 數據框可用。
回复:JMP 找到 R以下是幫助 > 腳本索引中的一個簡短示例,可能有助於您入門:
Names Default to Here( 1 );
R Init();
x1 = [1, 2, 3];
R Send( x1 );
x2 = R Get( x1 );
Show( x1, x2 );
R Term();
我可能會讓你走錯方向R 連接() .
回复:JMP 找到 R你在名為的變量中存儲了什麼測試1 ?
回复:JMP 找到 R謝謝你的建議,馬克和吉姆。 我再次查看了 Scripting Guide,不幸的是,我仍然感到困惑。 我運行了他們在腳本指南中提供的“測試您的設置”腳本,它似乎工作正常(所以我擔心 JMP 無法找到 R 似乎是沒有根據的)。 但是,當我嘗試運行以下腳本以從 R 環境(我稱之為“test1”)中提取測試數據幀時......
R Connect();
test1 = R Get(test1);
我從日誌中得到以下輸出:
TKIntRJMP.R 版本 5.05
警告:eval(expr,p)中的錯誤:找不到對象“test1”
未知
我不確定如何解決這個問題。 我無法在腳本指南中找到解決此問題的方法。 也許我對此的理解是不正確的? 我的理解是命令 R Get() 將從 R 中提取一些對象並在 JMP 中返回它。 因此,如果我在 R 環境中創建了一個數據框,它將作為數據表拉入 JMP。
謝謝你的建議!
回复:JMP 找到 R我同意吉姆的觀點。 文檔中有很多信息可以為您節省很多困惑和浪費的時間。 許多示例為您自己的腳本提供了一個很好的起點。
也就是說,將 R 與 JMP 結合使用並不困難。 您必須先致電R 連接()啟動 R 並建立連接的函數。 其他 R 函數,例如R 獲取() ,然後通過此連接工作。
回复:JMP 找到 R您應該做的第一件事是閱讀腳本指南部分中的“使用 R”部分,擴展 JMP
幫助==>書籍==>腳本指南