R-Schnittstelle in JMPHallo,
Ich habe einen Code in R geschrieben, den ich in JMP ausführen möchte. Hier ist der Code:
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();
Wenn ich es dann ausführe, habe ich zwei Probleme:
Erstens habe ich einen Fehler aus diesen Zeilen:
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)
was sagt :
Fehler: Funktion boundingbox mit 2 nicht erkannten Argumenten aufgerufen
Zusätzlich: Warnmeldung:
2 Punkte wurden zurückgewiesen, da sie außerhalb des angegebenen Fensters lagen
Wenn ich 40 in 0 ändere, funktioniert es tatsächlich, weil alle meine Punkte in meinem Fenster sind, aber wenn ich den Code auf R ausführe, ist die Tatsache, dass nicht alle meine Punkte im Fenster sind, kein Problem. Und wenn ich den vorherigen Code in R ausführe, funktioniert es. Ich verstehe also nicht, warum ich in JMP eine Warnmeldung erhalten habe, aber nicht in R.
Das zweite Problem ist, wenn ich meine Daten exportieren möchte, JMP meinen Datenrahmen nicht extrahieren möchte und ich nicht verstehe, warum. Ich verwende diesen Code:
ResidJMP = R Get(Distribution);
ResidJMP << New Data View;
R term();
Tatsächlich möchte ich eine Datentabelle in JMP zurückgeben und nachdem ich sie als Hauptdatentabelle verwenden möchte.
DatentabelleSonstigesSkripterstellungWindowsRe: R-Schnittstelle in JMPHallo,
Für ein grundlegendes Beispiel,
R Init(); // Initiate R connection
dt = Open(“$SAMPLE_DATA/Big Class.jmp”,invisible);
R Send(dt);
Der Aufruf der Spalte sollte auf folgende Weise erfolgen:
R Submit("
print(dt['weight'])
//b<-dt['weight']/dt['height']
");
anstatt
R Submit("
print(dt$weight)
//b<-dt['weight']/dt['height']
");
Ich denke, es sollte die Ausgabe Ihres ersten Problems ändern.
Re: R-Schnittstelle in JMPWenn ich dies auf meine Daten anwende, heißt es, dass die von mir verwendeten Spalten nicht numerisch sind. Wenn ich die Funktion as.numeric() verwende, heißt es: Das Objekt „list“ kann nicht gezwungen werden, „double“ einzugeben. Dieses Problem tritt beim $-Aufruf nicht auf. Hier gibt es leider so viele Probleme
Re: R-Schnittstelle in JMPSie können eine JMP-Datentabelle als Datenrahmen in R verwenden. Die Funktion R Send() konvertiert automatisch eine Datenstruktur in die andere. Hier ist ein einfaches Beispiel:
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
Ich vermute also, dass es ein Problem mit dem R-Code (Funktionsargumente) oder der Art der Variablen im Datenrahmen gibt. Nachdem Sie sich vergewissert haben, dass Ihr Funktionsaufruf korrekt ist, versuchen Sie, die Datentabelle von R auszudrucken, um zu sehen, ob alles wie erwartet übertragen wird.
Re: R-Schnittstelle in JMPWenn ich diesen Code auf 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)
Es funktioniert gut. Tatsächlich funktioniert es in JMP gut, wenn ich dieses Fenster verwende:
fenn<-owin(xrange=c(0,760), yrange=c(0,160), poly=NULL, mask=NULL, units=NULL)
Da sich alle meine (x,y)-Punkte im Fenster befinden, tritt das Problem auf, wenn ich das gewünschte Fenster platziere. Aber in R gibt es kein Fensterproblem.
Aber wenn es ein Problem mit den Variablen gibt, sollte es mit einem anderen Fenster nicht funktionieren, und das verstehe ich nicht.
Vielleicht verstehe ich etwas in Ihrem Kommentar nicht, aber ich finde nicht, was der Fehler sein könnte. Wenn ich es auf JMP von RI drucke, habe ich den guten Datenrahmen. Ich bin sicher verloren
Betreff: R-Schnittstelle in JMPIch versuche, die Funktion R Submit File() zu verwenden, damit ich genau denselben Code verwenden kann. Aber ich habe den gleichen Fehler im JMP-Code, den ich in R nicht habe. Dies ist der Fehler, den ich beheben muss. Ich probiere so vieles aus und verstehe auch nicht warum es auftaucht.
Error: Function boundingbox called with 2 unrecognised arguments