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.
Personnalisation de masseles fenêtresRe : Interface R dans JMPY avait-il une solution à l'erreur?
Error in if (is.na(datam)) { : the condition has length > 1J'ai le même problème.
Re : Interface R dans JMPJe vous suggère de contacter le support technique de JMP ( support@jmp.com ) pour obtenir de l'aide sur ce problème.
Re : Interface R dans JMPMaintenant, mon principal problème est d'exporter mon bloc de données depuis R. J'ai la même erreur avec votre exemple qu'avec mes données.
Erreur : Error in if (is.na(datam)) { : the condition has length > 1
Unexpected errors occurred while attempting to transfer the data.Je vérifie que mon R get() est sur un data.frame. Voici mon 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();Mais j'ai essayé beaucoup de choses différentes pour les mêmes résultats
Re : Interface R dans JMPVotre exemple fonctionne, j'avais ceci dans le journal :

Pour ta deuxième question, je ne suis pas sûr d'avoir bien compris. Mais j'essaie d'envoyer ma table de données JMP à R avec la commande send(), puis de l'imprimer dans le journal. Pour ton exemple ça ressemble à ça :

Dans mon exemple, j'ai ceci dans le journal :

et ma table ressemble à ça :

Re : Interface R dans JMPAvez-vous essayé mon exemple simple? Est-ce que ça marche? Que voyez-vous dans le journal JMP ?
Avez-vous essayé d'envoyer une table de données JMP à R et de l'imprimer dans R ? Cette trame de données correspond-elle à la table de données ?
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
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 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 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'apparaît pas avec l'appel $. Il y a tellement de problèmes ici malheureusement
Re : 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']
");
au lieu de
R Submit("
print(dt$weight)
//b<-dt['weight']/dt['height']
");
Je pense que cela devrait changer la sortie de votre premier problème.