// STATUS [ July 9, 2019 ] : this works but is it needed? public void EvaluateAllRecordsInLahmanMasterTable() { var engine = _r.CreateNewREngine(); engine.Evaluate("library(Lahman)"); engine.Evaluate("data(Master)"); engine.Evaluate("data(Batting)"); engine.Evaluate("Master$name <- paste(Master$nameFirst, Master$nameLast, sep=' ')"); var masterName = engine.Evaluate("Master$name <- paste(Master$nameFirst, Master$nameLast, sep=' ')"); }
// STATUS [ July 9, 2019 ] : this works /// <summary> /// Get list of Mlb player's Player Id, First Name, Last Name /// </summary> /// <param name="lastName">todo: describe lastName parameter on GetPlayerInfoForAllPlayersWithLastName</param> /// <remarks> /// See: 'playerInfo' section @ http://lahman.r-forge.r-project.org/doc/ /// See: https://analyticsrusers.blog/2018/05/31/leverage-r-code-within-net-environments-running-a-cvar-model-in-a-c-applications/ /// </remarks> /// <example> /// var playerInfoList = GetPlayerInfoForAllPlayersWithLastName("rizzo"); /// </example> /// <returns> /// List of LahmanPlayerInfo that includes: Lahman Id, First Name, Last Name /// </returns> public List <LahmanPlayerInfo> GetPlayerInfoForAllPlayersWithLastName(string lastName) { _h.StartMethod(); var engine = _r.CreateNewREngine(); engine.Evaluate("library(Lahman)"); CharacterVector lastNameVector = _r.CreateCharVect(engine, lastName); engine.SetSymbol("lastNameVector", lastNameVector); lastNameVector.Dispose(); SymbolicExpression lastEval = engine.Evaluate("playerInfo(lastNameVector)"); DataFrame dataFrame = lastEval.AsDataFrame(); var rowCount = dataFrame.RowCount; List <LahmanPlayerInfo> playerinfoList = new List <LahmanPlayerInfo>(); for (var indexer = 0; indexer <= rowCount - 1; indexer++) { var playerInfo = CreateLahmanPlayerInfoInstance(dataFrame, indexer, lastName); playerinfoList.Add(playerInfo); } _h.Dig(playerinfoList); // engine.Evaluate("playerInfo(lastNameVector)"); return(playerinfoList); }