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())); }
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,
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(""); }
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)); }
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; }