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: Boundingbox della funzione chiamato con 2 argomenti non riconosciuti
Inoltre: Messaggio di avviso:
2 punti sono stati respinti in quanto si trovano al di fuori della finestra specificata
In effetti, 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.
Tabella datiAltroSceneggiaturafinestreRi: 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 deve essere eseguita nel modo seguente:
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.
Ri: Interfaccia R in JMPQuando lo applico 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 si presenta con la chiamata $. Ci sono così tanti problemi qui purtroppo
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 di 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 di dati da R per vedere se tutto è stato trasferito come previsto.
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 uso 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 ci sono problemi di finestra.
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. Mi sono perso di sicuro
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é appare.
Error: Function boundingbox called with 2 unrecognised arguments