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();
Als ich es dann ausführte, traten zwei Probleme auf:
Erstens habe ich einen Fehler in 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: Funktions-Boundingbox mit zwei nicht erkannten Argumenten aufgerufen
Zusätzlich: Warnmeldung:
2 Punkte wurden abgelehnt, 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. Daher verstehe ich nicht, warum ich in JMP eine Warnmeldung erhalten habe, in R jedoch nicht.
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 diese anschließend als Hauptdatentabelle verwenden.
MassenanpassungWindowsBetreff: R-Schnittstelle in JMPGab es eine Lösung für den Fehler?
Error in if (is.na(datam)) { : the condition has length > 1Ich habe das gleiche Problem.
Betreff: R-Schnittstelle in JMPIch schlage vor, dass Sie sich an den technischen Support von JMP wenden ( support@jmp.com ) für Hilfe bei diesem Problem.
Betreff: R-Schnittstelle in JMPJetzt besteht mein Hauptproblem darin, meinen Datenrahmen aus R zu exportieren. Ich habe bei Ihrem Beispiel den gleichen Fehler wie bei meinen Daten.
Erreur : Error in if (is.na(datam)) { : the condition has length > 1
Unexpected errors occurred while attempting to transfer the data.Ich überprüfe, ob sich mein R get() auf einem data.frame befindet. Hier ist mein Code:
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();Aber ich habe viele verschiedene Dinge ausprobiert, um die gleichen Ergebnisse zu erzielen
Betreff: R-Schnittstelle in JMPIhr Beispiel funktioniert. Ich hatte Folgendes im Protokoll:

Was Ihre zweite Frage betrifft, bin ich mir nicht sicher, ob ich sie richtig verstehe. Aber ich versuche, meine JMP-Datentabelle mit dem Befehl send() an R zu senden und sie dann im Protokoll auszudrucken. Für dein Beispiel sieht es so aus:

In meinem Beispiel habe ich Folgendes im Protokoll gefunden:

und mein Tisch sieht so aus:

Betreff: R-Schnittstelle in JMPHast du mein einfaches Beispiel ausprobiert? Funktioniert es? Was sehen Sie im JMP-Protokoll?
Haben Sie versucht, eine JMP-Datentabelle an R zu senden und in R auszudrucken? Stimmt dieser Datenrahmen mit der Datentabelle überein?
Betreff: R-Schnittstelle in JMPIch versuche, die R Submit File()-Funktion zu verwenden, damit ich genau den gleichen 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 viel aus und verstehe auch nicht, warum es so erscheint.
Error: Function boundingbox called with 2 unrecognised arguments
Betreff: R-Schnittstelle in JMPWenn ich diesen Code auf R verwende
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 von RI auf JMP drucke, habe ich den guten Datenrahmen. Ich bin sicher verloren
Betreff: R-Schnittstelle in JMPSie können eine JMP-Datentabelle als Datenrahmen in R verwenden. Die Funktion R Send() wandelt automatisch eine Datenstruktur in die andere um. 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
Daher vermute ich, dass ein Problem mit dem R-Code (Funktionsargumente) oder der Art der Variablen im Datenrahmen vorliegt. Nachdem Sie sichergestellt haben, dass Ihr Funktionsaufruf korrekt ist, versuchen Sie, die Datentabelle aus R auszudrucken, um zu sehen, ob alles wie erwartet übertragen wurde.
Betreff: R-Schnittstelle in JMPWenn ich dies auf meine Daten anwende, heißt es, dass die von mir verwendeten Spalten nicht numerisch sind. Wenn ich dann die Funktion as.numeric() verwende, heißt es: Das Objekt „Liste“ kann nicht zum Typ „Double“ gezwungen werden. Dieses Problem trat beim $-Aufruf nicht auf. Leider gibt es hier so viele Probleme
Betreff: R-Schnittstelle in JMPHallo,
Als einfaches 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.