有人用过吗?
我不介意看到快速入门的简短示例。

我可以运行example.fsx脚本:acf函数对显示的图形的副作用。

但是我不知道如何显示ggplot图形。

open RProvider.ggplot2
open RProvider.utils

R.setwd @"C:/code/pp/Datasets/output/Kaggle/dontgetkicked"
let f = R.read_csv("measure_DNGtraining.csv")
R.qplot("erase_rate", "components",f)

这产生了一个
val it : SymbolicExpression =
  RDotNet.SymbolicExpression {Engine = RDotNet.REngine;
                              IsClosed = false;
                              IsInvalid = false;
                              IsProtected = true;
                              Type = List;}

我正在阅读说明,但是如果有人有摘录的话...

最佳答案

我认为您需要将结果表达式传递给R.print:

R.qplot("erase_rate", "components",f)
|> R.print

通过F#类型提供程序使用ggplot2的问题在于ggplot2库太聪明了。我玩了一段时间,看来只要您只使用qplot函数,它就可以很好地工作。如果您想做更多花哨的事情,那么将R代码编写为字符串并调用R.eval可能会更容易。为此,您需要:
// Helper function to make calling 'eval' easier
let eval (text:string) =
  R.eval(R.parse(namedParams ["text", text ]))

eval("library(\"ggplot2\")")

// Assuming we have dataframe 'ohlc' with 'Date' and 'Open'
eval("""
  print(
    ggplot(ohlc, aes(x=Date, y=Open)) +
    geom_line() +
    geom_smooth()
  )
  """)

我还花了一些时间弄清楚如何将数据从F#传递到R(即,基于F#的数据创建R数据帧,例如CSV类型提供程序)。因此,为了填充ohlc数据框,我使用了此格式(其中SampleData是Yahoo的CSV提供程序):
let df =
  [ "Date",  box [| for r in SampleData.msftData -> r.Date |]
    "Open",  box [| for r in SampleData.msftData -> r.Open |]
    "High",  box [| for r in SampleData.msftData -> r.High |]
    "Low",   box [| for r in SampleData.msftData -> r.Low |]
    "Close", box [| for r in SampleData.msftData -> r.Close |] ]
  |> namedParams
  |> R.data_frame
R.assign("ohlc", df)

关于R类型提供程序和Ggplot2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16820211/

10-10 16:50