gpt4 book ai didi

r - 如何使用 group_by 变量作为 dplyr 的排除值?

转载 作者:行者123 更新时间:2023-12-02 07:22:00 24 4
gpt4 key购买 nike

假设我有以下数据框:

(dat  = data_frame(v1 = c(rep("a", 3), rep("b", 3), rep("c", 4)), v2 = 1:10))
# A tibble: 10 × 2
# v1 v2
# <chr> <int>
# 1 a 1
# 2 a 2
# 3 a 3
# 4 b 4
# 5 b 5
# 6 b 6
# 7 c 7
# 8 c 8
# 9 c 9
# 10 c 10

我想要做的是为每个组(即“a”、“b”和“c”)计算一个总和,该总和等于 v2 的总和,其中 v1 不等于分组值。所以它应该是这样的:

# A tibble: 3 × 2
# v1 sum
# <chr> <int>
# 1 a 49
# 2 b 40
# 3 c 21

根据我在网上看到的内容,这看起来像是一项需要do 的工作,但我不知道如何实现这一点。我认为它看起来像这样:

x %>%
group_by(v1) %>%
do(data.frame(sum=sum(.$v2[x$v1 != unique(.$v1)])))

但这只是为我提供了一个数据框,所有三个组的 sum 都等于 NA。我该怎么做呢?

最佳答案

也许使用中间列会更容易:

dat %>% mutate(total = sum(v2)) %>% group_by(v1) %>% summarize(sum = max(total) - sum(v2))

关于r - 如何使用 group_by 变量作为 dplyr 的排除值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43080569/

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