2 people like it.
Like the snippet!
Accessing list results by name with RProvider
R functions often return a list of results, indexed by names. This is a helper function which allows directly accessing the results using their names.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
|
open RDotNet
open RProvider
open RProvider.``base``
open RProvider.stats
let (?) (x:SymbolicExpression) name =
let nameLookup =
x.GetAttribute("names").AsList()
|> Seq.mapi (fun i n -> n.GetValue<string>(), i) |> dict
x.AsList().[nameLookup.[name]]
// call R function
let x = 0.1
let f = R.eval(R.parse(text="function(a){(a - 2)^2}"))
let minX = R.optim(x, f)
// access results
minX?counts
minX?value
|
namespace RDotNet
val x : SymbolicExpression
type SymbolicExpression =
inherit SafeHandle
member Engine : REngine
member Equals : other:SymbolicExpression -> bool + 1 overload
member GetAttribute : attributeName:string -> SymbolicExpression
member GetAttributeNames : unit -> string[]
member GetHashCode : unit -> int
member GetMetaObject : parameter:Expression -> DynamicMetaObject
member IsInvalid : bool
member IsProtected : bool
member Preserve : unit -> unit
member SetAttribute : attributeName:string * value:SymbolicExpression -> unit
...
Full name: RDotNet.SymbolicExpression
val name : 'a (requires equality)
val nameLookup : System.Collections.Generic.IDictionary<'a,int> (requires equality)
SymbolicExpression.GetAttribute(attributeName: string) : SymbolicExpression
module Seq
from Microsoft.FSharp.Collections
val mapi : mapping:(int -> 'T -> 'U) -> source:seq<'T> -> seq<'U>
Full name: Microsoft.FSharp.Collections.Seq.mapi
val i : int
val n : SymbolicExpression
Multiple items
val string : value:'T -> string
Full name: Microsoft.FSharp.Core.Operators.string
--------------------
type string = System.String
Full name: Microsoft.FSharp.Core.string
val dict : keyValuePairs:seq<'Key * 'Value> -> System.Collections.Generic.IDictionary<'Key,'Value> (requires equality)
Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.dict
(extension) SymbolicExpression.AsList() : GenericVector
val x : float
Full name: Script.x
val f : obj
Full name: Script.f
val minX : SymbolicExpression
Full name: Script.minX
More information