web-dev-qa-db-fra.com

Comment inverser une transformation log2

J'ai des données sous cette forme:

_        ds           y
1   2015-12-31 51737806366
2   2016-01-01   451800500
3   2016-01-04    48503189
4   2016-01-06      221000
5   2016-01-07   542483038
6   2016-01-08   628189789
7   2016-01-09   556762005
8   2016-01-10   195672447
9   2016-01-11   279202668
10  2016-01-12   540234196
11  2016-01-13  3403591404
12  2016-01-14   610409176
_

les valeurs de la colonne _'y'_ représentent le revenu, les unités monétaires. J'ai fait un tracé exploratoire de ces données dans leur forme d'origine et j'ai trouvé le tracé pas trop utile, le visuel des données n'était pas approprié, donc afin d'améliorer mes visualisations, j'ai appliqué une transformation log2() au _'y'_ colonne ... cela a bien fonctionné:

_        ds        y
1   2015-12-31 35.59050
2   2016-01-01 28.75111
3   2016-01-04 25.53158
4   2016-01-06 17.75369
5   2016-01-07 29.01500
6   2016-01-08 29.22663
7   2016-01-09 29.05249
8   2016-01-10 27.54387
9   2016-01-11 28.05674
10  2016-01-12 29.00901
11  2016-01-13 31.66441 
_

Le problème est maintenant que pour terminer mon analyse, je dois récupérer les valeurs _'y'_ à leur forme d'origine. Y a-t-il de toute façon ou implicitement une fonction R pour inverser la transformation log2() que j'ai appliquée afin que je puisse récupérer les nombres originaux?

7
Miguel 2488

C'est simple.

Tout d'abord, appelez log2:

data$y = log2(data$y)

Après cela, si vous voulez récupérer l'original, faites simplement:

data$y = 2^data$y

Le logarithme est la fonction inverse de l'exponentiation.

La règle générale est la suivante:

   logb(x) = y as by = x   

Par exemple:

   log2(4) = 2 as 22 = 4
   log2(8) = 3 as 23 = 8 
12
Thiago Procaci