Нужна помощь в усреднении вложенной функции DAX - PullRequest
0 голосов
/ 30 декабря 2018

Нужно найти 6 лучших «значений» производства между операторами («op»).Во-вторых, чтобы усреднить их по каждой операции.Мне нужна помощь с кодом DAX.

Я попытался создать отдельную таблицу, используя topN, чтобы найти верхние значения.Затем использовали AverageX, CurrentGroup и GroupBy.Ошибка состоит в том, что оператор GroupBy должен найти среднее значение по CurrentGroup, должен ссылаться на CurrentGroup или константу.

Table = 
GROUPBY (
    GROUPBY (
        fat,
        'fat'[op],
               "topn", TOPN( 6, fat, fat[Value],DESC)
    ),
    'fat'[op],
    "mn",SUMX( CURRENTGROUP (), [topn] )
)

Это проще сделать в R:

  dt<-read.table("data2.csv", TRUE) 
  library(plyr)
  n=6 #or other
  df1<-ddply(dt,~name,summarise,mean=mean(tail(sort(val),n)))
: Образец входного и ожидаемого выходных данных связан:

1 Ответ

0 голосов
/ 30 декабря 2018

Если я правильно понимаю, вы хотите взять верхние 6 значения для каждого op и усреднить их, чтобы получить одну строку.

Если это правильно, то я бы предложил что-токак это:

AvgTop6 = 
SUMMARIZECOLUMNS(
    fat[op],
    "Mean",
    CALCULATE(
        AVERAGE(fat[Value]),
        FILTER(fat, RANK.EQ(fat[Value], fat[Value]) <= 6)
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...