gpt4 book ai didi

c# - 是否可以使用 C# 中定义的对象作为使用 R.NET 的 R 函数/命令的输入

转载 作者:太空狗 更新时间:2023-10-30 01:34:33 26 4
gpt4 key购买 nike

我正在使用 R.NET 库在 C# 中调用 R 函数。我想在 c# 中定义或构造输入并将其传递给 R 命令。我试过这个:

engine.Evaluate("library(mirt)");
engine.Evaluate("x=mirt(Science,1)");
S4Object obj111 = engine.GetSymbol("x").AsS4();
engine.Evaluate("pl=x@Pl");
NumericVector pl_c= engine.GetSymbol("pl").AsNumeric();
int[] resp_c = new int [] {1,1,1,1};
engine.Evaluate("ff=fscores(x, response.pattern=resp_c)");

在尝试这个时我遇到了一个错误,它说,

"resp_c" not found.

有没有什么方法可以将输入从 C# 传递给 R 函数,而无需在双引号中显式写入该输入,这只是 R 脚本。

非常感谢您的提前回复。

最佳答案

不是c#专家,但快速浏览the doc表明你可以通过以下方式实现你想要的:

int[] resp_c = new int  [] {1,1,1,1};
IntegerVector resp_cR = engine.CreateIntegerVector(resp_c);
engine.SetSymbol("resp_c", resp_cR);
engine.Evaluate("ff=fscores(x, response.pattern=resp_c)");

您需要从您的 c# 数组中创建一个 R 对象,然后为其指定一个符号。

老实说,我从来没有用 c# 编程过,但我用 Java 和 JRI(java/R 集成)编程过,并且有一个关于如何将 Java 对象传递给 R 的想法。无法测试也不能确定它是否有效,但也许您会发现这在某些方面有帮助。

关于c# - 是否可以使用 C# 中定义的对象作为使用 R.NET 的 R 函数/命令的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30231173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com