JMP 中的 R 接口你好,
我在 R 中编写了一个我想运行到 JMP 中的代码。 这是代码:
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();
然后当我运行它时,我遇到了两个问题:
首先,我从这些行中有一个错误:
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)
其中说:
错误:使用 2 个无法识别的参数调用函数边界框
另外:警告信息:
2 个点因位于指定窗口之外而被拒绝
实际上,当我将 40 更改为 0 时,它可以工作,因为我的所有点都在我的窗口中,但是当我在 R 上运行代码时,我的所有点都不在窗口中这一事实不是问题。 如果我在 R 中运行之前的代码,它就可以工作。 所以我不明白为什么我在 JMP 中收到警告消息,但在 R 中却没有。
第二个问题是当我想导出我的数据时,JMP 不想提取我的数据框,我不明白为什么。 我使用这段代码:
ResidJMP = R Get(Distribution);
ResidJMP << New Data View;
R term();
事实上,我想在 JMP 中返回一个数据表,然后我想将它用作主数据表。
数据表其他脚本视窗回复:JMP 中的 R 接口你好,
举个基本的例子,
R Init(); // Initiate R connection
dt = Open(“$SAMPLE_DATA/Big Class.jmp”,invisible);
R Send(dt);
应按以下方式调用列:
R Submit("
print(dt['weight'])
//b<-dt['weight']/dt['height']
");
代替
R Submit("
print(dt$weight)
//b<-dt['weight']/dt['height']
");
我认为它应该改变你的第一个问题的输出。
回复:JMP 中的 R 接口当我将此应用于我的数据时,它说我使用的列不是数字,然后当我使用 as.numeric() 函数时,它说:'list' 对象不能被强制输入'double'。 $ 调用不会出现此问题。 不幸的是,这里有很多问题
回复:JMP 中的 R 接口您可以将 JMP 数据表用作 R 中的数据框。 R Send() 函数自动将一种数据结构转换为另一种数据结构。 这是一个简单的例子:
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
所以我怀疑R代码(函数参数)有问题,或者数据框中变量的性质有问题。 在确保您的函数调用正确后,尝试从 R 打印数据表以查看是否所有内容都按预期传输。
回复:JMP 中的 R 接口当我在 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)
它运作良好。 事实上,如果我使用这个窗口,它在 JMP 中效果很好:
fenn<-owin(xrange=c(0,760), yrange=c(0,160), poly=NULL, mask=NULL, units=NULL)
因为我所有的 (x,y) 点都在窗口中,所以当我放置我想要的窗口时,问题就出现了。 但是在R中没有窗口问题。
但是,如果变量有问题,它不应该与其他窗口一起使用,这是我不明白的。
也许您的评论中有一些我不明白的地方,但我没有发现可能是什么错误。 当我在 RI 的 JMP 上打印它时,有良好的数据框。 我肯定迷路了
回复:JMP 中的 R 接口我尝试使用 R Submit File() 函数,以便可以使用完全相同的代码。 但是我在 jmp 代码上遇到了与 R 中没有的相同的错误。 这是我需要解决的错误。 我尝试了很多东西,也不明白为什么会出现。
Error: Function boundingbox called with 2 unrecognised arguments