【问题标题】:Can I write a library/package for R in .Net/C#?我可以在 .Net/C# 中为 R 编写库/包吗?
【发布时间】:2012-11-15 09:54:44
【问题描述】:

我想知道是否可以在 C# 中编写用于 R 的包/库。我使用自己的二进制数据存储,它具有非常低的延迟和高吞吐量,并且我在其中存储序列化的值类型(ints/floats/longs ...),并且我也希望能够在 R 中访问相同的数据。我的二进制存储中的值类型都是按时间索引的,但是由于特定的数据结构,我看不到当前访问文件中的整个数据集和 R 中的特定子集的方法。

数据结构如下:

long、float、float:long 是日期和时间戳,float 是时间序列数据。如果这是我对 R 包所需要的,我很高兴重写数据结构以实现标头。我不想用 C 或 C++ 而是用 C# 编写包。有没有办法做到这一点?代码 sn-ps 或描述其完成方式的简短描述或链接将非常棒。

谢谢

【问题讨论】:

  • 我不确定这是否可能(我只知道可以以这种方式使用的 rcpp 包),但是here's a thread that might help you。我只知道R(D) COM interface might help you
  • 你看过mmapindexing包吗?
  • @rlegendi,这并没有真正帮助,但还是谢谢。我尝试了这个和 R.Net,两者都太慢了,无法将较大的集合作为向量发送到 R。这就是为什么我希望将集合存储在二进制文件中,然后将它们加载到 R 中。CSV 或其他基于文本的格式也太慢了.
  • @JoshuaUlrich,我查看了 Redis,我喜欢我目前所看到的,它相当快,如果我认为 memcache 不能,它可以将数据保存到磁盘。内存映射可能是另一种解决方案,因此,感谢您的建议。让我试试然后回来。
  • @JoshuaUlrich 提到的 mmap 包有一个名为 struct 的函数,它可以让您直接从磁盘将二进制结构读取到 R 中的正确类型列表中。这非常快,并且从 R 中非常简单用户视角。 ?mmap ?types 和 ?struct 充满了例子。

标签: c# r dll package


【解决方案1】:

我也在找一样的,目前我才找到:https://rclr.codeplex.com/

rClr 是 R 统计的包 软件。目标是与 来自 R 的任意 .NET 代码,无需对现有代码进行任何修改 代码。从广义上讲,.NET 之于 .NET 就像 rJava 之于 Java。

rJava:

rJava 是一个简单的 R 到 Java 接口。它可与 .C/.调用C接口。 rJava 在 R 和 Java(通过 JNI)。它允许创建对象、调用方法和访问 来自 R 的 Java 对象的字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2021-07-21
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    相关资源
    最近更新 更多