标准化或标准化R中的分贝对数刻度

标准化或标准化R中的分贝对数刻度,r,dplyr,R,Dplyr,我有以下数据集: dataset <- structure(list(album_name = c("Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.

我有以下数据集:

dataset <- structure(list(album_name = c("Vs.", "Vs.", "Vs.", "Vs.", "Vs.", 
"Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Vs.", "Ten", "Ten", 
"Ten", "Ten", "Ten", "Ten", "Ten", "Ten", "Ten", "Ten", "Ten"
), track_name = c("Go", "Animal", "Daughter", "Glorified G", 
"Dissident", "W.M.A.", "Blood", "Rearviewmirror", "Rats", 
"Elderly Woman Behind the Counter in a Small Town", 
"Leash", "Indifference", "Once", "Even Flow", "Alive", "Why Go", 
"Black", "Jeremy", "Oceans", "Porch", "Garden", "Deep", "Release"
), loudness = c(-7.037, -4.985, -9.686, -5.618, -5.127, -9.335, 
-6.377, -5.387, -7.049, -9.461, -5.555, -12.697, -7.695, -6.506, 
-6.069, -5.59, -6.457, -6.472, -10.142, -5.69, -6.846, -6.42, 
-11.919)), row.names = c(NA, -23L), class = "data.frame")


   album_name                                       track_name loudness
1         Vs.                                               Go   -7.037
2         Vs.                                           Animal   -4.985
3         Vs.                                         Daughter   -9.686
4         Vs.                                      Glorified G   -5.618
5         Vs.                                        Dissident   -5.127
6         Vs.                                           W.M.A.   -9.335
7         Vs.                                            Blood   -6.377
8         Vs.                                   Rearviewmirror   -5.387
9         Vs.                                             Rats   -7.049
10        Vs. Elderly Woman Behind the Counter in a Small Town   -9.461
11        Vs.                                            Leash   -5.555
12        Vs.                                     Indifference  -12.697
13        Ten                                             Once   -7.695
14        Ten                                        Even Flow   -6.506
15        Ten                                            Alive   -6.069
16        Ten                                           Why Go   -5.590
17        Ten                                            Black   -6.457
18        Ten                                           Jeremy   -6.472
19        Ten                                           Oceans  -10.142
20        Ten                                            Porch   -5.690
21        Ten                                           Garden   -6.846
22        Ten                                             Deep   -6.420
23        Ten                                          Release  -11.919

但按对数比例缩放让我怀疑这是否正确。请问,您知道如何标准化或规范化日志刻度吗?

如果您想标准化或规范化每个组内的轨迹,您可以使用
dplyr::group\u by
。对于对数刻度,您可能希望进行规格化,使值介于[0,1]之间。标准化包括取值与其最小值(b/c分贝为负)之间的差值,然后除以最小值。我们还必须从
1
中减去,以将范围从[-1,0]移动到[0,1]

library(dplyr)

dataset %>%
  group_by(album_name) %>%
  mutate(loudness_norm = 1 - ((min(loudness) - loudness) / min(loudness))) %>%
  ungroup()
library(dplyr)

dataset %>%
  group_by(album_name) %>%
  mutate(loudness_norm = 1 - ((min(loudness) - loudness) / min(loudness))) %>%
  ungroup()