在MacOS上的终端窗口上运行RProvider1.1.20
我尝试从中运行示例 http://bluemountaincapital.github.io/FSharpRProvider/mac-and-linux.html
R.mean([1;2;3;4)]
R.x11()
R.sin(1)
> R.sin(1.0);;
val it:RDotNet.SymbolicExpression = [1] 0.841471
一切正常
然而
>R.sin(1.0);;
base :: sin(0,1)中的错误:传递给'sin'的2个参数需要1
RDotNet.EvaluationException:base :: sin(0,1)中的错误:传递给'sin'的2个参数需要1
在RDotNet.REngine.Parse(System.String语句,System.Text.StringBuilder incompleteStatement)[0x000a0] in:0 在RDotNet.REngine + d__0.MoveNext()[0x0008f] in:0 at 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 RProvider.RInteropInternal+eval@292.Invoke (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&lt; 57161c90b86b2a10a7450383901c1657&gt ;:0 在RProvider.RInteropInternal.eval(System.String expr)[0x0000c] in&lt; 57161c90b86b2a10a7450383901c1657&gt;:0 at。$ FSI_0028.main @()[0x00046] in&lt; 23b88108285f4035b1dcf54f78a47062&gt ;:0 at(wrapper managed-to-native)System.Reflection.MonoMethod:InternalInvoke(System.Reflection.MonoMethod,object,object [],System.Exception&amp;) 在System.Reflection.MonoMethod.Invoke(System.Object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object [] parameters,System.Globalization.CultureInfo culture)[0x00038] in:0 因错误而停止
我首先想知道它是否与区域设置(数字的逗号或点分隔符)有关,但0.1和1.0的示例提示否则
这是一个x-post,因为我也在RProvider GitHub中发布了这个问题 https://github.com/BlueMountainCapital/FSharpRProvider/issues/186
答案 0 :(得分:2)
感谢@ s952163
这是一个区域设置问题。因此,如果您的全球环境是英语,则不应该有这个错误。
虽然这不是一个非常令人满意的答案,但我会将此标记为暂时的答案。