RDotNet数据帧查询

时间:2014-02-04 10:35:51

标签: c# r visual-studio-2013 r.net

我刚刚开始使用rdotNet来自:http://rdotnet.codeplex.com/。我以前从未使用过R本身,但可以在其中进行简单的算术运算。我已经能够创建实例并在c#中进行一些简单的数值计算。我的问题是当我在csv文件中读取并创建dataframe时。信息全部正确加载,我可以在调试时看到它。

当我尝试通过数据框并将内容打印到屏幕时,第一次迭代向我显示正确的信息,但之后似乎只是获取数字而不是实际信息。

由于我可以在解决方案中进行基本计算,因此我不会编写将创建 REngine 实例的乞讨代码。我将展示如何读取我在应用程序的debug文件夹中放置的文件: 我使用的下载的csv文件的位置:http://www.rqtl.org/sampledata/listeria.csv

engine.Evaluate("library(datasets)");

engine.Evaluate("dataset1 <- read.csv(file = \" listeria.csv\", header = TRUE, sep = ',')");

DataFrame dataset1 = engine.GetSymbol("dataset1").AsDataFrame();

//这是问题

for (int row = 0, row < dataset1.RowCount; row++)

{

     for ( int col = 0; col < dataset1.ColumnCount; k++)

     {

        Console.Writeline(dataset1[row,col])

     }

}

我的问题是,有人可以告诉我,如果我做错了,或者是否有其他方式通过Dataframe RdotNet获取信息。

希望我已经解释了一切,如果您需要更多信息,请随时提出。

内置:

Visual Studio 2013, using a console Application, framework 4.5.1, RdotNet DLL: Vers 1.5.5 and in Win 7 64 Bit  

1 个答案:

答案 0 :(得分:1)

尝试将stringsAsFactors设置为FALSE。

engine.Evaluate("dataset1 <- read.csv(file = 'listeria.csv', header = TRUE, sep = ',', stringsAsFactors = FALSE)");