Я все еще noob с F #, и я не понимаю весь синтаксис и логику загрузки и использования пакетов.loading RProvider in F #
Например, я хотел бы использовать (Blue Mountain's) RProvider. http://bluemountaincapital.github.io/FSharpRProvider/index.html
Использование VS2015, в моем текущем решении, я установил пакет с консолью PM и Install-Package RProvider
Я изменил немного RProvider.fsx, потому что у меня есть новые версии R.NET сообщества
#nowarn "211"
// Standard NuGet or Paket location
#I "."
#I "lib/net40"
// Standard NuGet locations for R.NET
#I "../R.NET.Community.1.6.4/lib/net40"
#I "../R.NET.Community.FSharp.0.1.9/lib/net40"
// Standard Paket locations for R.NET
#I "../R.NET.Community/lib/net40"
#I "../R.NET.Community.FSharp.1.6.4/lib/net40"
// Try various folders that people might like
#I "bin"
#I "../bin"
#I "../../bin"
#I "lib"
#I "../packages"
// Reference RProvider and RDotNet
#r "RDotNet.dll"
#r "RDotNet.FSharp.dll"
#r "RProvider.dll"
#r "RProvider.Runtime.dll"
open RProvider
do fsi.AddPrinter(fun (synexpr:RDotNet.SymbolicExpression) -> synexpr.Print())
Теперь мои вопросы
1), как загрузить пакет (RProvider) из F # Interactive? ну, собственно, мне это удалось сделать Например, файл RProvider.fsx находится на пути C: \ Users \ Fagui \ Documents \ GitHub \ Learning Fsharp \ Algo Stanford \ packages \ RProvider.1.1.15 \ RProvider. FSX
, что я сделал это
#I @"C:\Users\Fagui\Documents\GitHub\Learning Fsharp\Algo Stanford";;
#load "packages\RProvider.1.1.15\RProvider.fsx";;
и работает :-) , но я могу не писать весь путь?
2) В VS2015, если я хочу включить его в решение ... в explorer explorer я включил файл RProvider.fsx (ниже AssemblyInfo.fs, App.config и packages.config приходят после, is это право?) и последний саму программу Rtype.fs
Я пытаюсь воспроизвести пример из http://bluemountaincapital.github.io/FSharpRProvider/Statistics-QuickStart.html
open System
open *RDotNet* // the namespace or module 'RDotNet' is not defined
open *RProvider*
open *RProvider*.graphics
open RProvider.stats
// let x = System.Environment.CurrentDirectory
// val x : string
printfn "hello world"
Console.ReadKey() |> ignore
// Random number generator
let rng = Random()
let rand() = rng.NextDouble()
// Generate fake X1 and X2
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)
let coefficients = result.AsList().["coefficients"].AsNumeric()
let residuals = result.AsList().["residuals"].AsNumeric()
let summary = R.summary(result)
*summary.AsList().["r.squared"].AsNumeric()
R.plot result*
// это выражение должно быть «блок» типа, но имеет тип «NumericVector '...
Я получаю некоторые предупреждения/ошибки от Intellisense, хотя компилятор управляет сборкой. При выполнении exe, похоже, что экран Windows занят, мне удается увидеть некоторые графики, но они выглядят так, как будто они не имеют никакого отношения к тому, что говорит Rtype.fs ...
спасибо за помощь!
Я добавил скриншоты. Я думаю, пакет R.NET был установлен вместе с RProvider. Таким образом, существует несоответствие между версией, установленной NuGET, и версией, на которую ссылается RProvider.fsx, которая загружается вместе с ней. Кроме того, на моем скриншоте я могу увидеть RProvider в ссылках, но я не помню, как нажимал «Enable» в любое время. когда я вижу свойства RProvider, я не вижу ничего похожего на галочку –
Вы должны увидеть что-то вроде этого: https://rodhern.files.wordpress.com/2015/03/3-tpwarning_thumb.png?w=604&h= 251 –
В диалоговом окне «Параметры» убедитесь, что поставщик включен (флажок установлен): http://i.stack.imgur.com/Xxqd2.png –