C# - 将 R 数据帧转换为 Deedle.Frame

C# - Convert R Data Frame to Deedle.Frame

我有一个 C# 应用程序需要一个 Deedle Frame 作为输入数据。我还有一个 return 数据框的 R 脚本,我不想用 C# 在 R 脚本中重新实现算法。 我尝试使用 R.Net,我可以从 C# 应用程序中的 R 脚本获取数据框,但它的类型是 RDotNet.DataFrame。 在 C# 代码中是否有将 RDotNet.DataFrame 转换为 Deedle Frame 的方法?

我也在考虑创建一个调用 R 脚本的 F# dll 库,然后在 C# 代码中使用该 dll 库。可能吗?

如果您使用 F# 中的 Deedle,那么您也可以使用 R 类型提供程序。两者很好地集成在一起,您可以从 F# 调用 R 并取回 Deedle 数据帧。有a good example on this in the Deedle documentation.

R 提供程序会自动将 R 数据帧转换为 Deedle 帧。例如:

open RProvider.datasets

// Get mtcars as a typed Deedle frame
let mtcars : Frame<string, string> = R.mtcars.GetValue()

在 R 提供程序和 Deedle 中进行转换的源代码也可用。所以如果你想直接使用它,开始的地方是 tryCreateFrame 函数 in Deedle source code.

目前这还没有真正暴露给 C#,但我们当然欢迎拉取请求,使 Deedle 成为可能:-)。