将百分比转换为范围 [-1;1]

convert percentage to range [-1;1]

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

这是我现在正在使用的table:

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 语言来实现它。

有什么想法、建议吗?

这些分数实际上看起来不像百分比,它们更像是分数 - 例如,0.75 的百分比将是 75

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

newVal = oldVal * 2 - 1

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

范围内

我认为您完全有权不提交任何工作并要求免费解决方案。任何基本的统计文本都会描述如何变基和缩放一组数据。但是,这会按照您的要求进行

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', (  - $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