RDotNet数据框日期列转换为数值向量

时间:2018-10-18 10:25:47

标签: c# .net r r.net

我正在通过RDotNet库(.NET c#)调用R中的一个函数。通过R本身进行调用时,输出是一个数据帧,其中的一列是“日期”格式的日期。但是,当使用RDotNet调用该函数并将其读取为DataFrame(AsDataFrame())时,“ Date”列的返回类型为NumericVector。 我在做什么错了?
如何在C#中将该数字矢量转换为DateTime格式?或者只是如何从C#中的R脚本输出的数据框中读取日期类型格式?

在c#中评估的示例:

res = engine.Evaluate($@"variable <- function())").AsDataFrame();
res["enter_day"][1] (type is an int and not Date). 

其中一个数字矢量的示例:17655。

RStudio(R)中的输出示例:

Example

这是一个数据框,其中一列是img中显示的一列。

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须使用DateTime.FromOADate。在F#中:

open System

let RDateOffset = 25569.
let toRDate (d : DateTime) = d.ToOADate() - RDateOffset
let fromRDate d = DateTime.FromOADate(d + RDateOffset)

(fromRDate 17655.).ToString("yyyy-MM-dd") //output: "2018-05-04"