Interface R dans JMPBonjour,
J'ai écrit un code en R que je veux exécuter dans JMP. Voici le 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();
Ensuite, lorsque je l'exécute, j'ai deux problèmes:
Tout d'abord, j'ai une erreur à partir de ces lignes:
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)
qui dit :
Erreur : Fonction boundingbox appelée avec 2 arguments non reconnus
En plus : Message d'avertissement :
2 points ont été rejetés car situés en dehors de la fenêtre spécifiée
En fait quand je change 40 en 0 ça marche car tous mes points sont dans ma fenêtre, mais quand j'exécute le code sur R le fait que tous mes points ne soient pas dans la fenêtre n'est pas un problème. Et si j'exécute le code précédent dans R, cela fonctionne. Je ne comprends donc pas pourquoi j'ai reçu un message d'avertissement dans JMP mais pas dans R.
Le deuxième problème est que lorsque je veux exporter mes données, JMP ne veut pas extraire mon bloc de données et je ne comprends pas pourquoi. J'utilise ce code :
ResidJMP = R Get(Distribution);
ResidJMP << New Data View;
R term();
En fait, je veux retourner une table de données dans JMP et après je veux l'utiliser comme table de données principale.
Tableau de donnéesAutreScriptles fenêtresRe : Interface R dans JMPBonjour,
Pour un exemple de base,
R Init(); // Initiate R connection
dt = Open(“$SAMPLE_DATA/Big Class.jmp”,invisible);
R Send(dt);
l'appel de colonne doit se faire de la manière suivante :
R Submit("
print(dt['weight'])
//b<-dt['weight']/dt['height']
");
à la place de
R Submit("
print(dt$weight)
//b<-dt['weight']/dt['height']
");
Je pense que cela devrait changer la sortie de votre premier problème.
Re : Interface R dans JMPLorsque j'applique ceci à mes données, il est indiqué que les colonnes que j'ai utilisées ne sont pas numériques, puis lorsque j'utilise la fonction as.numeric(), il est indiqué: l'objet 'list' ne peut pas être contraint de taper 'double'. Ce problème n'est pas apparu avec l'appel $. Il y a tellement de problèmes ici malheureusement
Re : Interface R dans JMPVous pouvez utiliser une table de données JMP comme bloc de données dans R. La fonction R Send() convertit automatiquement une structure de données dans l'autre. Voici un exemple simple :
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
Je soupçonne donc qu'il y a un problème avec le code R (arguments de fonction), ou la nature des variables dans la trame de données. Après vous être assuré que votre appel de fonction est correct, essayez d'imprimer la table de données à partir de R pour voir si tout a été transféré comme prévu.
Re : Interface R dans JMPQuand j'utilise ce code sur 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)
Cela fonctionne bien. En fait ça marche bien dans JMP si j'utilise cette fenêtre :
fenn<-owin(xrange=c(0,760), yrange=c(0,160), poly=NULL, mask=NULL, units=NULL)
Parce que tous mes points (x,y) sont dans la fenêtre, le problème survient lorsque je mets la fenêtre que je veux. Mais dans R il n'y a pas de problème de fenêtre.
Mais s'il y a un problème avec les variables, cela ne devrait pas fonctionner avec une autre fenêtre et c'est ce que je ne comprends pas.
Il y a peut-être quelque chose que je ne comprends pas dans votre commentaire mais je ne trouve pas ce qui pourrait être l'erreur. Lorsque je l'imprime sur JMP à partir de RI, j'ai la bonne trame de données. je suis perdu c'est sûr
Re : Interface R dans JMPJ'essaie d'utiliser la fonction R Submit File() pour pouvoir utiliser exactement le même code. Mais j'ai la même erreur sur le code jmp que je n'ai pas dans R. C'est l'erreur que j'ai besoin de résoudre. J'essaie tellement de choses et je ne comprends pas non plus pourquoi cela apparaît.
Error: Function boundingbox called with 2 unrecognised arguments