Esempio n. 1
0
 private static IEnumerable <SymbolicExpression> ListToSexp(REngine engine, RDotNetConverter dataConverter, IEnumerable enumerable)
 {
     foreach (var item in enumerable)
     {
         if (item == null)
         {
             yield return(engine.NilValue);
         }
         else
         {
             var sexp = dataConverter.ConvertToSexp(item.GetType(), item);
             if (sexp == null)
             {
                 yield return(engine.NilValue);
             }
             else
             {
                 yield return(sexp);
             }
         }
     }
 }
Esempio n. 2
0
        private static SymbolicExpression DicoToSexp <T>(REngine engine, RDotNetConverter dataConverter, IEnumerable <KeyValuePair <string, T> > enumerable)
        // ReSharper restore UnusedMember.Local
        {
            var type   = typeof(T);
            var array  = enumerable.ToArray();
            var length = array.Length;

            var values = new SymbolicExpression[length];
            var names  = new string[length];

            for (var i = 0; i < length; i++)
            {
                names[i] = array[i].Key;
                var sexp = dataConverter.ConvertToSexp(type, array[i].Value);
                values[i] = sexp ?? engine.NilValue;
            }

            var vector = new GenericVector(engine, values);

            vector.SetNames(names);
            return(vector);
        }