Esempio n. 1
0
        private static IConverter ConvertFromNumericalVector(SymbolicExpression sexp)
        {
            var isPosixct  = sexp.IsPosixct();
            var isDiffTime = !isPosixct && sexp.IsDiffTime();

            if (sexp.IsMatrix())
            {
                if (isPosixct)
                {
                    return(new PosixMatrixConverter(sexp.AsNumericMatrix()));
                }
                if (isDiffTime)
                {
                    return(new NumericDiffTimeMatrixConverter(sexp.AsNumericMatrix()));
                }

                return(new MatrixConverter <double>(sexp.AsNumericMatrix()));
            }

            if (isPosixct)
            {
                return(new PosixVectorConverter(sexp.AsNumeric()));
            }
            if (isDiffTime)
            {
                return(new NumericDiffTimeVectorConverter(sexp.AsNumeric()));
            }

            return(new VectorConverter <double>(sexp.AsNumeric()));
        }
Esempio n. 2
0
        private static object[]? VectorToArray(SymbolicExpression sexp)
        {
            RequireTrue(sexp.IsVector());

            return(sexp.Type switch
            {
                SymbolicExpressionType.CharacterVector => sexp.AsCharacter().ToArray(),
                SymbolicExpressionType.IntegerVector => sexp.AsInteger().ToArray().Cast <object>().ToArray(),
                SymbolicExpressionType.LogicalVector => sexp.AsLogical().ToArray().Cast <object>().ToArray(),
                SymbolicExpressionType.NumericVector => sexp.AsNumeric().ToArray().Cast <object>().ToArray(),
                _ => default,
Esempio n. 3
0
        static void PrintResult(SymbolicExpression result)
        {
            var numericResult = result.AsNumeric();

            Console.WriteLine("Size of numeric vector: {0}", numericResult.Length);
            Console.WriteLine("First vector result as numeric: {0}", numericResult.FirstOrDefault());
            var characterResult = result.AsCharacter();

            Console.WriteLine("Size of result as character vector: {0}", characterResult.Length);
            Console.WriteLine("First vector result as character: {0}", characterResult.FirstOrDefault());
            Console.WriteLine("");
        }
Esempio n. 4
0
        private static object convertNumericVector(SymbolicExpression sexp)
        {
            var values     = sexp.AsNumeric().ToArray();
            var classNames = RDotNetDataConverter.GetClassAttrib(sexp);

            if (classNames != null)
            {
                if (classNames.Contains("Date"))
                {
                    return(convertVector(RDateToDateTime(values)));
                }
                if (classNames.Contains("POSIXct"))
                {
                    return(convertVector(RPosixctToDateTime(sexp, values)));
                }
                if (classNames.Contains("difftime"))
                {
                    return(convertVector(RdifftimeToTimespan(sexp, values)));
                }
            }
            return(convertVector(values));
        }
Esempio n. 5
0
        private static IEnumerable <string> MapNumericVector(SymbolicExpression sexp)
        {
            var mapped = sexp.AsNumeric().Select(s => s.ToString());

            return(mapped);
        }
 private static IEnumerable<string> MapNumericVector(SymbolicExpression sexp)
 {
     var mapped = sexp.AsNumeric().Select(s => s.ToString());
     return mapped;
 }