【发布时间】:2015-03-26 23:08:15
【问题描述】:
我正在尝试使用 ISLR 包 (http://cran.r-project.org/web/packages/ISLR/index.html)。
是否可以将包与 F# 一起使用? 我找到了 RProvider 1.1.8 (https://www.nuget.org/packages/RProvider/) 并尝试了我的第一个 F# 程序:
open System
open RDotNet
open RProvider
open RProvider.``base``
open RProvider.graphics
open RProvider.stats
// open RProvider.ISLR
let rng = Random()
let rand () = rng.NextDouble()
let X1s = [ for i in 0 .. 9 -> 10. * rand () ]
let X2s = [ for i in 0 .. 9 -> 5. * rand () ]
// Build Ys, following the "true" model
let Ys = [ for i in 0 .. 9 -> 5. + 3. * X1s.[i] - 2. * X2s.[i] + rand () ]
let dataset =
namedParams [
"Y", box Ys;
"X1", box X1s;
"X2", box X2s; ]
|> R.data_frame
let result = R.lm(formula = "Y~X1+X2", data = dataset)
R.plot result
这个程序运行完美。但是,当我尝试使用 ISLR(注释掉“open RProvider.stats”)时,F# 抱怨找不到“lm”。 我希望使用 ISLR 的“lm”版本,它应该是 ISLR 的一部分
我的环境是:Visual Studio 2013,RStudio 版本 0.98.1091,ISLR 版本 1.0
任何关于如何将 ISLR 与 F# 一起使用的建议将不胜感激。
【问题讨论】:
-
pkg:ISLR 只是数据集的集合。您需要在使用 Julia 的课程中发布指向该材料的链接。
-
我没有说教授在课程中使用了 Julia,而是他个人使用的。例如参见:github.com/simonster/GLMNet.jl
-
你说他在 ISLR 包中使用了它……他没有。你提议“将 ISLR 与 F# 一起使用”。你不能……至少在 ISLR 提供编程解决方案的意义上。一旦认识到 pkg:ISLR 的真正含义,这个问题就没有意义了。
-
我还没有反对,因为我认为您可以将其重写为 RProvider 包的一个非常好的演示。没有
ISLR::lm。那只是普通的stats::lm。并提供您自己的答案。然而,与 Julia 的联系似乎非常脆弱。 (请记住,对包裹推荐的请求被视为 OT。) -
你是对的。 ISLR 中没有函数。运行 RStudio 几天后,很容易忘记我想要使用的函数是哪个库。我应该做 "open RProvider.e1071" 而不是 "open RProvider.ISLR" 。对困惑感到抱歉。如果您保持打开状态,我将提交 RProvider 包的更好演示。