Я пытаюсь передать данные из SQL в C #, затем на R-сервер для анализа данных, а затем обратно в мое веб-приложение; однако используемый мной COM-интерфейс не позволяет передавать сложные типы данных между C # и R (без таблиц данных). Я получил его в прошлом, используя следующий код:
int count = dataTable.Rows.Count;
object[] y = new object[count];
object[] x = new object[count];
//R does not accept DataTables, so here we extract the data from
//the table and pass it into 2 double arrays.
for (int i = 0; i < count; i++)
{
y[i] = Convert.ToDouble(dataTable.Rows[i][0]);
x[i] = Convert.ToDouble(dataTable.Rows[i][1]);
}
//Instantiate R connection
StatConnector r = new STATCONNECTORSRVLib.StatConnectorClass();
r.Init("R");
r.SetSymbol("y", y); //Passes column y into R
r.SetSymbol("x", x); //Passes column x into R
Моя проблема теперь возникает из-за того, что я больше не ограничен только удваиваниями, все, что выходит из базы данных SQL, является честной игрой (int, varchar и т. Д.), И что я больше не вызываю только 2 столбца данных (может быть сколько угодно, сколько указано пользователем).
Как я могу преобразовать данные динамического размера и динамических типов данных в массив, который можно было бы безопасно передать в rcom?