我想规范化R中的数据,但不规范特定范围内的数据(例如0到1)。我有一个如下表:
benchmark | technique | ipc
correlation | no_compression | 0.5
correlation | compression-bdi | 0.6
trisolv | no_compression | 0.6
trisolv | compression-bdi | 0.7
我希望每个基准的IPC的no_compression值均为1。特定基准的其余技术将基于该no_compression值。因此,例如,用于压缩的bdi的IPC值与相关性为1.2。
我可以使用任何功能吗?我只能提到规范化到一定范围的内容。
使用dplyr
:
df %>%
group_by(benchmark) %>%
mutate(ipc_standardized = ipc / ipc[technique == 'no_compression'])
# A tibble: 4 x 4 # Groups: benchmark [2] benchmark technique ipc ipc_standardized <chr> <chr> <dbl> <dbl> 1 correlation no_compression 0.5 1 2 correlation compression-bdi 0.6 1.2 3 trisolv no_compression 0.6 1 4 trisolv compression-bdi 0.7 1.17