Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C:无法从R执行代码_C#_R_Outliers_Drawellipse - Fatal编程技术网

C# C:无法从R执行代码

C# C:无法从R执行代码,c#,r,outliers,drawellipse,C#,R,Outliers,Drawellipse,我想用c表示椭圆。在R中运行时,我的代码很好,但我从c获得如下消息: 对象是静态的;不允许来自HRESULT的操作异常:0x8004000B OLE_E_STATIC 这是我的密码: df.rconn.Evaluate("library(cluster)") df.rconn.Evaluate("library(rrcov)") public void setScatter(int xAxis, int yAxis, int zAxis, List<string> variable)

我想用c表示椭圆。在R中运行时,我的代码很好,但我从c获得如下消息: 对象是静态的;不允许来自HRESULT的操作异常:0x8004000B OLE_E_STATIC

这是我的密码:

df.rconn.Evaluate("library(cluster)")
df.rconn.Evaluate("library(rrcov)")
public void setScatter(int xAxis, int yAxis, int zAxis, List<string> variable) 
    {

        // plot from R
        //to show outlier with method : classic & robust Mve 
        this.comboBoxXAxis.SelectedIndex = xAxis;
        this.comboBoxYAxis.SelectedIndex = yAxis;
        dataform.rconn.EvaluateNoReturn("x<-X[," + xAxis + "] ");
        dataform.rconn.EvaluateNoReturn("y<-X[," + yAxis + "] ");
        dataform.rconn.EvaluateNoReturn("shape <- cov(X)");
        dataform.rconn.EvaluateNoReturn("center<- colMeans(X)");
        dataform.rconn.EvaluateNoReturn("d2.95 <- qchisq(0.95, df = 2)");
        //dataform.rconn.EvaluateNoReturn("gr<- grid(lty=3,col='lightgray', equilogs = 'TRUE')");
        //dataform.rconn.Evaluate("mtext('with classical (red) and robust (blue)')");
        dataform.rconn.EvaluateNoReturn("plot(x,y, main='Draw Ellipse ', pch=19,col='black', type='p')");
        dataform.rconn.EvaluateNoReturn("elp<- unname(ellipsoidPoints(shape, d2.95,center))");
        dataform.rconn.Evaluate(" lines(elp, col='red' , lty=7 , lwd=2)");
        //dataform.rconn.EvaluateNoReturn("lines(e)");
        //dataform.rconn.EvaluateNoReturn("lines(ellipsoidPoints(mve@cov, d2 = d2.95, loc=mve@center), col='blue', lty='7' , lwd='2') ");
        axGraphicsDevice2.RemoveFromConnector();
    }

在我注释的任何代码中,都会出现相同的错误。我不知道为什么会发生这个问题。知道怎么显示那个椭圆吗?非常感谢您,因为您帮助我完成了我的论文。

一些缺少的上下文信息,但根据您提供的猜测,您的rconn statconnector?操作刷新图形设备行、多行文字等时不高兴

出于我自己的目的,我需要使用R.NET测试c中的一些R图形内容,因此我使用了您的代码作为基础,并建议将其作为一种变通方法供您尝试。您将在以下目录下找到一个在GitHub上使用的示例控制台应用程序:

从VS2013、Windows7 64位、.NET framework 4.5编译/运行

我注意到我需要选择使用dev.hold和dev.flush来获得直观的刷新

e.Evaluate("dev.hold()");
e.Evaluate("mtext('with classical (red) and robust (blue)')");
e.Evaluate("dev.flush()");

希望这能有所帮助。

如果您通过它进行调试,它在哪一行出现故障?rconn是什么?你的操作系统是什么?请提供相关信息@SteveFerg:我在使用funtion椭球点时出错。我使用statconnector。顺便问一下,dev.hold和dev.flush的功能是什么@j-m