2017-01-12 1 views
0

내 요청이 매우 일반적이라고 생각했지만 해결 방법을 찾을 수 없었습니다.흑연에서는 데이터가 상수보다 높을 때 상수로 데이터를 어떻게 캡핑합니까?

제목/요약에 모두 나와 있지만 더 많은 색상을 제공하기 위해 일반적으로 0과 100 사이의 측정 항목이 있지만 일부 이상한 경우에는 0-100의 나머지 부분을 왜곡하는 몇 천개까지 촬영합니다 데이터.

내 목표는 데이터가있을 때 나는 그것이 값이 100

내가 찾을 수있는 유일한 것은 removeAboveValue() 만 사용하는 경우가로 보이는 것입니다 넘어 알고 그래서 110 말한대로 100 이상으로 설정한다는 것입니다 데이터가 누락 된 경우.

도와주세요.

감사합니다. 위 또한 실제 간격으로 110을 설정합니다

transfromNull(removeAboveValue(some.metric.avg, 100), 110) 

참고 :

답변

1

가장 간단한 방법은 transformNulls 그래서 쿼리가 같을 것이다 사용하는 것입니다. 물론이 같은 격차를 표시하는 메트릭 원점에서 다시 transformNull을 사용할 수 있습니다 ... -1 (또는 무엇이든)

transfromNull(removeAboveValue(transfromNull(some.metric.avg, -1), 100), 110) 

하지만 항상 불가능 (잘못된) 나쁜 외에 메트릭 경우이 (마법 null has value을 소개합니다 음수 값을 가질 수 있습니다. 다음 용액은

...

  1. 만을 초과하는 데이터 포인트에 맞춰 준비하고 110에 그들의 값을 설정. 그것은 여러면에서 행해질 수 있습니다. 몇 가지 간단한 접근 방식을 취해 봅시다 :

    a. 100 점 이상을 얻는다.

    removeBelowValue(some.metric.avg, 100) 
    

    b. 동일한 측정 기준으로 나눗셈을 사용하여 값을 1로 낮추십시오.

    divideSeries(removeBelowValue(some.metric.avg, 100), removeBelowValue(some.metric.avg, 100)) 
    

    c. 110 설정치 - (110)에 의해 복수 :

    scale(divideSeries(removeBelowValue(some.metric.avg, 100), removeBelowValue(some.metric.avg, 100)),110) 
    
  2. 은 (removeAboveValue 사용) 임계치 이하의 값을 사용하여 제조 한 메트릭을 병합. 병합 기능으로,이 경우, minSeries

    minSeries(
        removeAboveValue(some.metric.avg, 100), 
        scale(
        divideSeries(
         removeBelowValue(some.metric.avg, 100), 
         removeBelowValue(some.metric.avg, 100) 
        ), 
        110 
    ) 
    ) 
    
+0

감사 Kwarunek를 사용! 나는 정말로 더 간단한 해결책을 원했다. 지금은 removeAboveValue() 함수를 고수하고 위에서 제시 한 시나리오로 인해 "누락 된"데이터 포인트가있을 가능성이있는 차트/측정 항목을 사용자에게 알립니다. –

관련 문제