gpt4 book ai didi

r - dplyr:将组中的所有值除以组的第一个值

转载 作者:行者123 更新时间:2023-12-01 23:39:48 35 4
gpt4 key购买 nike

我的 df 看起来像这样:

ID    Obs    Value
1 1 26
1 2 13
1 3 52
2 1 1,5
2 2 30

使用 dplyr,我添加了附加列 Col,它是该列值中的所有值除以该列中组的第一个值的结果。

ID    Obs    Value    Col
1 1 26 1
1 2 13 0,5
1 3 52 2
2 1 1,5 1
2 2 30 20

我该怎么做?

最佳答案

按“ID”分组后,使用mutate通过将“值”除以 first 来创建新列“值(value)”

library(dplyr)
df1 %>%
group_by(ID) %>%
mutate(Col = Value/first(Value))

如果first 'Value' 为 0,我们不想使用它,然后用逻辑表达式对 'Value' 进行子集化,然后取 first其中

df1 %>%
group_by(ID) %>%
mutate(Col = Value/first(Value[Value != 0]))
<小时/>

或者在base R

df1$Col <- with(df1, Value/ave(Value, ID, FUN = head, 1))

注意:“Value”中的逗号表明它是 character柱子。在这种情况下,应首先将其更改为十进制( . ),如果是这种情况,请转换为 nunmeric然后进行除法。可以一边读取数据一边完成

关于r - dplyr:将组中的所有值除以组的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54344563/

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