Spotfire: среднее значение столбца с Ironpython, используя выражение - PullRequest
0 голосов
/ 14 октября 2019

Я хочу выполнить некоторые основные статистические функции для моей таблицы в Spotfire. Например: я хочу вычислить среднее значение всех значений в столбце [A], и мне нужно иметь это значение в качестве переменной в IronPython.

Я могу прочитать все значения в столбце, суммировать их и полностью рассчитать среднеев IronPython, но так как я также хотел бы использовать другие статистические функции Spotfire, я ожидал, что смогу как-то вызвать API Spotfire и использовать выражение (так же, как создается вычисляемый столбец). Примерно так:

expr = "Avg([{col}])".format(col = colName)

Теперь мне понадобится способ вызвать это выражение и сохранить результат в переменной для последующего использования.

В псевдокоде:

colName = "Weight"
value = API.SomeFunction(expr)

Буду признателен за любые подсказки, а также за информацию, если это вообще возможно.

1 Ответ

1 голос
/ 14 октября 2019

В случае, если кто-то еще может извлечь выгоду из этого. Наилучшее приближение, которое я нашел до сих пор, это (соответствующая выдержка из кода):

row6 = "Srel"
for col in SampleColumns:
    colExp = "StdDev([{col}]) / Avg([{col}]) * 100".format(col = col)
    colName = col + colExp[0:colExp.find("(")]
    sT.Columns.AddCalculatedColumn(colName, colExp)
    val = getFirstFloatValue(sT, colName)
    row6 += TAB + str(val)
    sT.Columns.Remove(colName)
row6 += EOL

Я создаю вычисляемый столбец для каждой комбинации выражения столбец, значение которого мне нужно. Затем я читаю первое значение вычисляемого столбца (все значения одинаковы):

def getFirstFloatValue(table, colName):
    cursor = DataValueCursor.Create[float](table.Columns[colName])
    for row in table.GetRows(cursor):
        return cursor.CurrentValue
    return 

Я использую значение val, а затем удаляю столбец.

Я считаю, что может быть лучшерешения, но я в любом случае публикую это, потому что это решение может принести пользу кому-то другому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...