Возврат массива от JS до C# с COM Interop

Вы ищете режим. R не имеет встроенной функции для режима, но вы можете создать функцию для этого:

library(data.table)
setDT(df)

getmode <- function(v) {
  uniqv <- unique(v)
  uniqv[which.max(tabulate(match(v, uniqv)))]
}

df[,characteristics1:=getmode(characteristics1), by=Person]

   Person characteristics1
1:      A                1
2:      A                1
3:      A                1
4:      A                1
5:      A                1
6:      A                1
5
задан vanja. 3 April 2009 в 09:07
поделиться

1 ответ

Найти базовый тип объекта содержавшимся в rutime вызываемой обертке (Система. __ ComObject), Вы использовали бы закуску. Вы затем смогли бы создать или бросить к управляемому типу от этой информации.

Например;

string type = (string)result.GetType().InvokeMember("getType",
BindingFlags.InvokeMethod, null, result, null);

Кроме того, Вы могли использовать invokeMember для получения значений. Например, Вы могли вызвать valueOf метод для преобразования массива в большинство значимых примитивных возможных значений или toString к убежищу массив к строке csv.

string result = (string)result.GetType().InvokeMember("toString",
BindingFlags.InvokeMethod, null, result, null);
string[] jsArray = result.Split(',');
// c# jsArray[n] = js result[n] 

Править: Третий способ сделать это в c# 4.0 должно использовать новый динамический тип. Динамический тип делает действительно легким сделать последние ограниченные запросы к COM-объектам.

string csv = ((dynamic)result).toString();
3
ответ дан 15 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: