我正在通过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)中的输出示例:
这是一个数据框,其中一列是img中显示的一列。
谢谢!
答案 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"