Interfaccia R in JMPCiao,
Ho scritto un codice in R che voglio eseguire in JMP. Ecco il codice:
R init();
//send data to R
R Send(dt);
R submit("
library(spatstat)
#creation fenetre
fenn<-owin(xrange=c(40,760), yrange=c(40,160), poly=NULL, mask=NULL, units=NULL)
ppp<-ppp(x=dt$XM,y=dt$YM,window=fenn)
print(quadratcount(ppp,nx=6,ny=3)
Q<-quadrat.test.ppp(ppp,nx=6,ny=3)
a<-cdf.test(ppp,'x')
D=0
if(a[[2]] & Q[[3]] < 0.1 ){
D=0}else {D=1}
Distribution=as.data.frame(rep(c(D),nrow(dt)))
class(Distribution)
print(a)
");
R term();
Quindi quando lo eseguo ho riscontrato due problemi:
Innanzitutto ho un errore da queste righe:
fenn<-owin(xrange=c(40,760), yrange=c(40,160), poly=NULL, mask=NULL, units=NULL)
ppp<-ppp(x=dt$XM,y=dt$YM,window=fenn)
che dice:
Errore: funzione boundingbox chiamata con 2 argomenti non riconosciuti
Inoltre: Messaggio di avviso:
2 punti sono stati respinti in quanto al di fuori della finestra specificata
Infatti quando cambio 40 in 0 funziona perché tutti i miei punti sono nella mia finestra, ma quando eseguo il codice su R il fatto che tutti i miei punti non siano nella finestra non è un problema. E se eseguo il codice precedente in R funziona. Quindi non capisco perché ho ricevuto un messaggio di avviso in JMP ma non in R.
Il secondo problema è quando voglio esportare i miei dati, JMP non vuole estrarre il mio frame di dati e non capisco perché. io uso questo codice:
ResidJMP = R Get(Distribution);
ResidJMP << New Data View;
R term();
In effetti voglio restituire una tabella di dati in JMP e dopo voglio usarla come tabella di dati principale.
Personalizzazione di massafinestreRi: Interfaccia R in JMPC'era una soluzione all'errore?
Error in if (is.na(datam)) { : the condition has length > 1Ho lo stesso problema.
Ri: Interfaccia R in JMPTi suggerisco di contattare il supporto tecnico di JMP ( support@jmp.com ) per assistenza con questo problema.
Ri: Interfaccia R in JMPOra il mio problema principale è esportare il mio frame di dati da R. Ho lo stesso errore con il tuo esempio che con i miei dati.
Erreur : Error in if (is.na(datam)) { : the condition has length > 1
Unexpected errors occurred while attempting to transfer the data.Controllo che il mio R get() sia su un data.frame. Ecco il mio codice:
Treat=Open( "C:\Users\GROUSD01\Desktop\CréationcodeMPPT\Results 4.jmp" );
R init();
//send data to R
R Send(Treat);
R submit("library(spatstat)
round(Treat$XM)
round(Treat$YM)
XM<-Treat$XM
YM<-Treat$YM
test<-as.data.frame(cbind(XM,YM))
test2<-data.frame()
for (i in 1:nrow(test)){
if(test[i,2]>39){
test2<-rbind(test2,test[i,1:2])}}
fenn<-owin(xrange=c(40,760), yrange=c(40,160), poly=NULL, mask=NULL, units=NULL)
#creation point pattern
ppp<-ppp(x=test2$XM,y=test2$YM,window=fenn)
print(ppp)
plot(quadratcount(ppp,nx=6,ny=3))
Q<-quadrat.test.ppp(ppp,nx=6,ny=3)
print(Q)
a<-cdf.test(ppp,'x')
paste('Ma pvalue du KS test ', format(a[[2]], digits=3))
D=character()
if(a[[2]] & Q[[3]] < 0.1 ){
D='Distribution Non-Uniforme'}else {D='Distribution Uniforme'}
Distribution<-(rep(c(D),length(Treat$XM)))
Treat<-cbind(Treat,Distribution)
");
R Get(Treat)<<New Data View
R term();Ma ho provato molte cose diverse per gli stessi risultati
Ri: Interfaccia R in JMPIl tuo esempio funziona ho avuto questo nel registro:

Per la tua seconda domanda non sono sicuro di aver capito bene. Ma provo a inviare la mia tabella di dati JMP a R con il comando send () e quindi a stamparla nel registro. Per il tuo esempio sembra così:

Nel mio esempio ho ottenuto questo nel registro:

e la mia tabella sarà così:

Ri: Interfaccia R in JMPHai provato il mio semplice esempio? Funziona? Cosa vedi nel registro JMP?
Hai provato a inviare una tabella di dati JMP a R e stamparla in R? Quel frame di dati corrisponde alla tabella di dati?
Ri: Interfaccia R in JMPProvo a utilizzare la funzione R Submit File () in modo da poter utilizzare lo stesso identico codice. Ma ho lo stesso errore sul codice jmp che non ho in R. Questo è l'errore che devo risolvere. Provo così tante cose e anche non capisco perché appaia.
Error: Function boundingbox called with 2 unrecognised arguments
Ri: Interfaccia R in JMPQuando uso questo codice su R
library(spatstat)
data<-read.("Results.csv")
#creation fenetre
fenn<-owin(xrange=c(40,760), yrange=c(40,160), poly=NULL, mask=NULL, units=NULL)
#creation point pattern
ppp<-ppp(x=data$XM,y=data$YM,window=fenn)
plot(ppp)
summary(ppp)
#test quadrat
quadratcount(ppp,nx=6,ny=3)
Q<-quadrat.test.ppp(ppp,nx=6,ny=3)
paste("Ma pvalue du quadrat test ", format(Q[[3]], scientific=TRUE, digits=3))
#test ks
a<-kstest(ppp,'x')
paste("Ma pvalue du KS test ", format(a[[2]], scientific=TRUE, digits=3))
D=character()
if(a[[2]] & Q[[3]] < 0.1 ){
D="Distribution Non-Uniforme"}else {D="Distribution Uniforme"}
Distribution<-rep(c(D),length(XM))
dt<-cbind(dt,Distribution)
Funziona bene. In effetti funziona bene in JMP se utilizzo questa finestra:
fenn<-owin(xrange=c(0,760), yrange=c(0,160), poly=NULL, mask=NULL, units=NULL)
Poiché tutti i miei punti (x,y) sono nella finestra, il problema viene fuori quando metto la finestra che voglio. Ma in R non c'è problema di window.
Ma se c'è un problema con le variabili non dovrebbe funzionare con un'altra finestra e questo è quello che non capisco.
Forse c'è qualcosa che non capisco nel tuo commento ma non trovo quale potrebbe essere l'errore. Quando lo stampo su JMP da RI ho il buon frame di dati. Sono perso di sicuro
Ri: Interfaccia R in JMPÈ possibile utilizzare una tabella di dati JMP come frame di dati in R. La funzione R Send() converte automaticamente una struttura dati nell'altra. Qui c'è un semplice esempio:
Names Default to Here( 1 );
// make sure JMP can find the desired installed version of R
Set Environment Variable( "R_HOME", "C:\Program Files\R\R-4.1.3" );
// use regression example from JMP Sample Data Folder
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// use standard linear model function with data frame
R Init( );
R Send( dt );
R Submit(
"fit <- lm( dt$weight~dt$height )
print( fit )"
);
R Term();
// examine results in Log
Quindi sospetto che ci sia un problema con il codice R (argomenti della funzione) o la natura delle variabili nel frame di dati. Dopo esserti assicurato che la tua chiamata di funzione sia corretta, prova a stampare la tabella dei dati da R per vedere se tutto è stato trasferito come previsto.
Ri: Interfaccia R in JMPQuando applico questo ai miei dati, dice che le colonne che ho usato non sono numeriche, quindi quando uso la funzione as.numeric () dice: l'oggetto 'list' non può essere costretto a digitare 'double'. Questo problema non è apparso con la chiamata $. Ci sono così tanti problemi qui purtroppo
Ri: Interfaccia R in JMPCiao,
Per un esempio di base,
R Init(); // Initiate R connection
dt = Open(“$SAMPLE_DATA/Big Class.jmp”,invisible);
R Send(dt);
la chiamata di colonna dovrebbe essere fatta nel seguente modo:
R Submit("
print(dt['weight'])
//b<-dt['weight']/dt['height']
");
invece di
R Submit("
print(dt$weight)
//b<-dt['weight']/dt['height']
");
Penso che dovrebbe cambiare l'output del tuo primo problema.