0

我正在研究 PowerBI 中的一个项目。我想将一列小数(百分比)转换为从 -1 到 1 的范围。

这是我现在使用的表:

FirstName | Score
Jack      | 0.75
John      | 0.50
Reese     | 0.00
Mike      | 1.00

期望的结果是:

FirstName | Score
Jack      | 0.50
John      | 0.00
Reese     | -1.00
Mike      | 1.00

我正在努力解决这背后的数学问题。如果我得到了那个部分,我可以通过在 PowerBI 中使用 m 语言来完成它。

有什么想法、建议吗?

4

2 回答 2

5

这些分数实际上看起来不像百分比,它们更像是分数 - 例如,百分比0.7575.

因此,如果您正在谈论映射0..1-1..1,那么应用转换是一件简单的事情:

newVal = oldVal * 2 - 1

乘以 2 首先将其缩放到范围内0..2,而减法然后将其移动到范围内-1..1

于 2017-01-24T10:13:09.850 回答
-5

我认为你完全有权不展示任何作品并要求免费的解决方案。任何基本的统计文本都将描述如何对一组数据进行变基和缩放。但是,这将满足您的要求

use strict;
use warnings 'all';

use List::Util qw/ min max /;

my @data = <DATA>;
my ($min, $max, $delta);

{
    my @n = map /([\d.]+)\s*\z/, @data;

    ( $min, $max ) = ( min(@n), max(@n) );
    $delta = $max - $min;
}

for ( @data ) {
    s{ ( [\d.]+ ) (?= \s*\z ) }{ sprintf '%.2f', ( $1 - $min ) * 2 / $delta - 1 }xe;
    print;
}

__DATA__
FirstName | Score
Jack      | 0.75
John      | 0.50
Reese     | 0.00
Mike      | 1.00

输出

FirstName | Score
Jack      | 0.50
John      | 0.00
Reese     | -1.00
Mike      | 1.00
于 2017-01-25T17:53:38.653 回答