访问和提取数据框结果 - R.NET

时间:2017-06-21 18:58:05

标签: c# r r.net

我从R script运行C#并将结果作为dataframe获得:

var OUTPUT = engine.GetSymbol("detail.dt").AsDataFrame();

OUTPUT dataframe让我们说3列为:

NAME Month Rate 

Rob 1 100

Rob 2 150

Rob 3 500

Ned 1 200

Ned 2 500

Sansa 1 500

Sansa 2 1000

我可以将单个列值提取为:

var Name = OUTPUT[0].AsEnumerable().ToList();
var Month = OUTPUT[1].AsNumeric().ToList();
var Rate = OUTPUT[2].AsNumeric().ToList();

我的问题是,不是逐列提取,我基本上想要提取MonthRate,如果用户要求" Rob"或" Sansa"。 如何为给定的Month提取RateName ? 有更好更快的方式吗?

1 个答案:

答案 0 :(得分:0)

我会遍历data.frame。名称似乎在您的数据中重复,但以下是如何获取其中一个:

string userInput = "Rob";
int myMonth = 0;
int myRate = 0;

for (int i = 0; i < OUTPUT.RowCount; ++i)
{
  if (OUTPUT[i, 0].ToString() == userInput) {
    myMonth = Convert.ToInt32(OUTPUT[i, 1].ToString());
    myRate = Convert.ToInt32(OUTPUT[i, 2].ToString());
    break;
  }
}

如果您需要所有这些,请删除break语句,并将它们放入列表或适合您的任何数据结构中。