我从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();
我的问题是,不是逐列提取,我基本上想要提取Month
和Rate
,如果用户要求" Rob
"或" Sansa
"。
如何为给定的Month
提取Rate
和Name
值?
有更好更快的方式吗?
答案 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语句,并将它们放入列表或适合您的任何数据结构中。