如何獲得R標準輸出當我通過JSL提交R代碼時,R控制台標準輸出(stdout)顯示在JMP日誌中。 有沒有辦法在文本字符串中捕獲該信息?我知道我可以將stdout從R重定向到文件(使用sink()函數),然後使用一些JSL在JMP變量中獲取文件內容,但我寧願不必使用這樣的中間步驟。
例;
names default to here(1);
R Init();
dt=open("$SAMPLE_DATA/Cars.jmp");
R Send(dt);
R Submit(
"
summary(lm(formula=Chest.decel ~ Wt, data=dt))
"
);
RTerm();此輸出顯示在日誌文件中
Call:
lm(formula = Chest.decel ~ Wt, data = dt)
Residuals:
Min 1Q Median 3Q Max
-17.931 -6.650 -1.482 5.593 44.232
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.853e+01 2.440e+00 15.792 < 2e-16 ***
Wt 3.354e-03 8.135e-04 4.123 4.7e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 9.367 on 339 degrees of freedom
(11 observations deleted due to missingness)
Multiple R-squared: 0.04776, Adjusted R-squared: 0.04495
F-statistic: 17 on 1 and 339 DF, p-value: 4.703e-05我希望能夠將輸出作為文本字符串並將其放入報表窗口的文本框中。
Re:如何獲得R標準輸出 @MathStatChem ,
在我走得太遠之前,你不想使用R Get()嗎?您是否嘗試使用R Get()然後將該信息用作文本框的輸入?
Re:如何獲得R標準輸出從我所看到的,R Get()將從R數據結構或變量(數字,字符串,矩陣,列表或數據框)中獲取值,但不是標準輸出。
Re:如何獲得R標準輸出 @MathStatChem ,
試試這個:
R Init();
dt=open("$SAMPLE_DATA/Cars.jmp");
R Send(dt);
R Submit(
"
model = lm(Chest.decel ~ Wt,data = dt)
t = summary(model)
# Use names function to determine what are the objects that exist
names(t)
# Extract and cast into data frames
Residuals = as.data.frame(t$residuals)
Coefficients = as.data.frame(t$coefficients)
"
);
ResidJMP = R Get(Residuals);
ResidJMP << New Data View;
CoeffJMP = R Get(Coefficients);
CoeffJMP << New Data View;
RTerm();
Close(dt,"No Save");
Re:如何獲得R標準輸出謝謝你的建議。 我知道如果我可以將R結果放入R數據對象,那麼我可以使用R Get()來檢索結果。 但是,將stdout結果作為文本字符串獲取會更容易,至少對於我的目的而言。
@uday_guntupalli 中寫道:
@MathStatChem ,
試試這個:
R Init();
dt=open("$SAMPLE_DATA/Cars.jmp");
R Send(dt);
R Submit(
"
model = lm(Chest.decel ~ Wt,data = dt)
t = summary(model)
# Use names function to determine what are the objects that exist
names(t)
# Extract and cast into data frames
Residuals = as.data.frame(t$residuals)
Coefficients = as.data.frame(t$coefficients)
"
);
ResidJMP = R Get(Residuals);
ResidJMP << New Data View;
CoeffJMP = R Get(Coefficients);
CoeffJMP << New Data View;
RTerm();
Close(dt,"No Save");
Re:如何獲得R標準輸出 日誌捕獲() 可以做你想做的事。
Names Default To Here(1);
R Init();
dt = Open("$SAMPLE_DATA/Cars.jmp");
R Send(dt);
R_stdout = Log Capture(R Submit("
summary(lm(formula=Chest.decel ~ Wt, data=dt))
"));
R Term();
New Window("example", Text Box(R_stdout));