gpt4 book ai didi

r - 如何为另一列中定义的每种类型规范化一列中的值

转载 作者:行者123 更新时间:2023-12-04 11:31:20 24 4
gpt4 key购买 nike

BEFORE
-------------------------------
ID measure value
-------------------------------
original weight 120.0
variant1 weight 110.0
variant2 weight 78.0
variant3 weight 140.0
original speed 56.0
variant1 speed 54.0
variant2 speed 56.0
variant3 speed 61.0
original height 6.7
variant1 height 6.3
variant2 height 4.5
variant3 height 5.3
-------------------------------

假设我有一张那样的 table 。对于每种类型的“度量”,我想用在“原始”中找到的值对“值”进行标准化。这样结果看起来像。附加名为“norm_value”的新列

AFTER
------------------------------------
ID measure norm_value
------------------------------------
original weight 1.0
variant1 weight 0.91
variant2 weight 0.65
variant3 weight 1.16
original speed 1.0
variant1 speed 0.96
variant2 speed 1.0
variant3 speed 1.08
original height 1.0
variant1 height 0.94
variant2 height 0.67
variant3 height 0.79
-------------------------------

非常感谢任何帮助。

最佳答案

使用dplyr,你可以尝试:

df %>%
group_by(measure) %>%
mutate(norm_value = value/value[ID == "original"])

ID measure value norm_value
<chr> <chr> <dbl> <dbl>
1 original weight 120 1
2 variant1 weight 110 0.917
3 variant2 weight 78 0.65
4 variant3 weight 140 1.17
5 original speed 56 1
6 variant1 speed 54 0.964
7 variant2 speed 56 1
8 variant3 speed 61 1.09
9 original height 6.7 1
10 variant1 height 6.3 0.940
11 variant2 height 4.5 0.672
12 variant3 height 5.3 0.791

base R 相同的想法:

with(df, value/ave((ID == "original") * value, measure, FUN = max))

关于r - 如何为另一列中定义的每种类型规范化一列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58963630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com