Interfaz R en JMPHola,
Escribí un código en R que quiero ejecutar en JMP. Aquí está el código:
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();
Luego, cuando lo ejecuto, tengo dos problemas:
En primer lugar tengo un error de estas líneas:
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)
que dice:
Error: se llamó a la funciónboundingbox con 2 argumentos no reconocidos
Además: Mensaje de advertencia:
2 puntos fueron rechazados por estar fuera de la ventana especificada
De hecho, cuando cambio 40 a 0, funciona porque todos mis puntos están en mi ventana, pero cuando ejecuto el código en R, el hecho de que todos mis puntos no estén en la ventana no es un problema. Y si ejecuto el código anterior en R funciona. Entonces, no entiendo por qué recibí un mensaje de advertencia en JMP pero no en R.
El segundo problema es cuando quiero exportar mis datos, JMP no quiere extraer mi marco de datos y no entiendo por qué. Yo uso este código:
ResidJMP = R Get(Distribution);
ResidJMP << New Data View;
R term();
De hecho, quiero devolver una tabla de datos en JMP y luego quiero usarla como la tabla de datos principal.
La personalización en masaventanasRe: Interfaz R en JMP¿Hubo alguna solución al error?
Error in if (is.na(datam)) { : the condition has length > 1Tengo el mismo problema.
Re: Interfaz R en JMPLe sugiero que se comunique con el soporte técnico de JMP ( support@jmp.com ) para obtener ayuda con este problema.
Re: Interfaz R en JMPAhora mi principal problema es exportar mi marco de datos desde R. Tengo el mismo error con tu ejemplo que con mis datos.
Erreur : Error in if (is.na(datam)) { : the condition has length > 1
Unexpected errors occurred while attempting to transfer the data.Compruebo que mi R get() está en un data.frame. Aquí está mi código:
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();Pero probé muchas cosas diferentes para obtener los mismos resultados.
Re: Interfaz R en JMPTu ejemplo funciona. Tenía esto en el registro:

Para su segunda pregunta, no estoy seguro de entenderla bien. Pero trato de enviar mi tabla de datos JMP a R con el comando send() y luego la imprimo en el registro. Para tu ejemplo se ve así:

En mi ejemplo, obtuve esto en el registro:

y mi tabla se ve así:

Re: Interfaz R en JMP¿Probaste mi ejemplo simple? ¿Funciona? ¿Qué ves en el registro de JMP?
¿Intentó enviar una tabla de datos JMP a R e imprimirla en R? ¿Ese marco de datos coincide con la tabla de datos?
Re: Interfaz R en JMPIntento usar la función R Enviar archivo () para poder usar exactamente el mismo código. Pero tengo el mismo error en el código jmp que no tengo en R. Este es el error que necesito resolver. Intento tantas cosas y tampoco entiendo por qué aparece.
Error: Function boundingbox called with 2 unrecognised arguments
Re: Interfaz R en JMPCuando uso este código en 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)
funciona bien De hecho, funciona bien en JMP si uso esta ventana:
fenn<-owin(xrange=c(0,760), yrange=c(0,160), poly=NULL, mask=NULL, units=NULL)
Como todos mis puntos (x,y) están en la ventana, el problema sale cuando pongo la ventana que quiero. Pero en R no hay problema de ventana.
Pero si hay un problema con las variables no debería funcionar con otra ventana y esto es lo que no entiendo.
Quizás hay algo que no entiendo en tu comentario pero no encuentro cual puede ser el error. Cuando lo imprimo en JMP desde RI, tengo un buen marco de datos. Estoy perdido seguro
Re: Interfaz R en JMPPuede usar una tabla de datos JMP como marco de datos en R. La función R Send() convierte automáticamente una estructura de datos en otra. Aquí hay un ejemplo 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
Entonces sospecho que hay un problema con el código R (argumentos de función) o la naturaleza de las variables en el marco de datos. Después de asegurarse de que su llamada de función sea correcta, intente imprimir la tabla de datos de R para ver si todo se transfirió como se esperaba.
Re: Interfaz R en JMPCuando aplico esto a mis datos, dice que las columnas que usé no son numéricas, luego, cuando uso la función as.numeric (), dice: el objeto 'lista' no se puede obligar a escribir 'doble'. Este problema no apareció con la llamada $. Hay tantos problemas aquí lamentablemente
Re: Interfaz R en JMPHola,
Para un ejemplo básico,
R Init(); // Initiate R connection
dt = Open(“$SAMPLE_DATA/Big Class.jmp”,invisible);
R Send(dt);
la llamada de columna debe hacerse de la siguiente manera:
R Submit("
print(dt['weight'])
//b<-dt['weight']/dt['height']
");
en lugar de
R Submit("
print(dt$weight)
//b<-dt['weight']/dt['height']
");
Creo que debería cambiar el resultado de su primer problema.