gpt4 book ai didi

r - 根据其他列减去该列的最小值

转载 作者:行者123 更新时间:2023-12-02 08:32:52 24 4
gpt4 key购买 nike

我有一个数据框如下:

 d

year total file
1999 3931.12000 A
2002 4273.71020 A
2005 4601.41493 A
2008 4101.32100 A
1999 346.82000 B
2002 134.30882 B
2005 130.43038 B
2008 88.27546 B

我希望每个组中的总和及其最小值的差异由文件确定。
我可以想到通过以下方式获得最低限度:

 tapply(d$total, d$file, min)

但我想不出获得减去最小值的向量的明智方法。

最佳答案

我建议使用 withinave。像这样:

within(mydf, {
tot2 <- ave(total, file, FUN = function(x) x - min(x))
})
# year total file tot2
# 1 1999 3931.12000 A 0.00000
# 2 2002 4273.71020 A 342.59020
# 3 2005 4601.41493 A 670.29493
# 4 2008 4101.32100 A 170.20100
# 5 1999 346.82000 B 258.54454
# 6 2002 134.30882 B 46.03336
# 7 2005 130.43038 B 42.15492
# 8 2008 88.27546 B 0.00000

或者,使用“data.table”:

library(data.table)
DT <- data.table(mydf)
DT[, tot2 := total - min(total), by = file][]

或者,使用“dplyr”:

library(dplyr)
mydf %>% group_by(file) %>% mutate(tot2 = total - min(total))

关于r - 根据其他列减去该列的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24979757/

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