2017-05-13 4 views
1

läuft RProvider1.1.20 auf MacOS auf einem Terminal-Fenster reproduzierenRProvider Fehler in F # auf MacOS: nicht einfaches Beispiel

Ich versuche, das Beispiel von http://bluemountaincapital.github.io/FSharpRProvider/mac-and-linux.html

R.mean([1;2;3;4)] R.x11() R.sin(1)

zu laufen > R.sin(1.0);;

val es: RDotNet.SymbolicExpression = [1] 0,841471

alle funktionieren

jedoch >R.sin(1.0);; Fehler bei Base :: sin (0, 1): 2 Argumente 'Sünde' geleitet, das erfordert 1

RDotNet.EvaluationException: Fehler in Basis :: sin (0, 1): 2 Argumente zu 'sin' geleitet, die 1

bei RDotNet.REngine.Parse (System erfordert. String-Anweisung, System.Text.StringBuilder incompleteStatement) [0x000a0] in: 0 bei RDotNet.REngine + d__0.MoveNext() [0x0008f] in: 0 bei System.Linq.Enumerable.LastOrDefault [TSource] (System.Collections. Generic.IEnumerable 1[T] source) [0x00042] in <2392cff65f724abaaed9de072f62bc4a>:0 at RDotNet.REngine.Evaluate (System.String statement) [0x0000d] in <bc069eb3146d4bcda8475794f512037f>:0 at [email protected] (Microsoft.FSharp.Core.Unit unitVar0) [0x00026] in <57161c90b86b2a10a7450383901c1657>:0 at RProvider.Internal.Logging.logWithOutput[a] (RProvider.CharacterDeviceInterceptor characterDevice, Microsoft.FSharp.Core.FSharpFunc 2 [T, TResult] f) [0x0007e] in < 57161c90b86b2a10a7450383901c1657>: 0 bei RProvider.RInteropInternal.eval (System.String ausdr) [0x0000c] in < 57161c90b86b2a10a7450383901c1657>. 0 bei $ FSI_0028.main @() [0x00046] in < 23b88108285f4035b1dcf54f78a47062>: 0 an (Wrapper Managed-to-native) System.Reflection.MonoMethod: InternalInvoke (System.Reflection.MonoMethod, Objekt, Objekt [], System.Exception &) bei System .Reflection.MonoMethod.Invoke (System.Object OBJ, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder Bindemittel, System.Object [] Parameter, System.Globalization.CultureInfo Kultur) [0x00038] in: 0 aufgrund Stopped

I zunächst verwunderlich Fehler wenn es mit dem regionalen Einstellungen (Komma oder Punkt Trennzeichen für Zahlen), aber das Beispiel mit 0,1 und 1,0 vorschlagen sonst

dies ist ein x-post zu tun hat, als ich gepostet auch dieses Problem in den RProvider GitHub hier https://github.com/BlueMountainCapital/FSharpRProvider/issues/186

+2

Ich würde sagen, Fehler in der Basis :: sin (0, 1) 'zeigt immer noch auf Gebietsschema Probleme. Kannst du es auf C oder US setzen und sehen, was passiert? 1.0 könnte nur als 1 durchkommen, also könntest du vielleicht mit 2.99 und 2,99 versuchen, dir eine bessere Idee zu geben? Oder vielleicht doppelte Klammern sin ((0.1))? – s952163

+1

Wie ändern Sie diese Einstellungen? ist das eine Einstellung auf Betriebssystemebene? oder auf der R-Ebene? –

+2

Beide. Ich weiß nicht, wie man Gebietsschema/Region für OS X ändert. Ich nehme an 1. Es gibt einige Systemeinstellungen, um es zu tun, 2.Sie können das Gebietsschema für Ihr Terminal genau wie eine normale Shell setzen (wieder vorausgesetzt): entweder LANG oder LC_ALL auf C oder ein US-Gebietsschema setzen, 3. Sie können das Gebietsschema für R setzen: 'Sys.setlocale (" LC_ALL ", 'C ') ' – s952163

Antwort

2

dank @ s952163

Es ist ein regionales Einstellungsproblem. Wenn Ihre globale Umgebung in Englisch ist, sollten Sie diesen Fehler nicht haben.

Auch wenn es keine sehr befriedigende Antwort ist, werde ich dies vorläufig als eine Antwort markieren.