gpt4 book ai didi

r - 根据 group_by 行及其列值选择行

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

我制作了一个可重现的数据集。

在此数据集中,我尝试获取按“值”和“类别”分组的列,并仅当其中“值”的值大于 4 时才获取“类别”中所有列的最大值分组依据

提出问题的另一种方式是获取每个标签的每个“类别”的最大“值”,前提是该“类别”中存在大于 4 的“值”

das <- data.frame(val=1:24,
weigh=c(10,10,10,11,11,11,20,20,20,21,21,21,30,30,30,31,31,31,40,40,40,41,41,41),
value=c(4.1,3.2,4.3,1.1,2.2,5.3,2.1,2.2,3.3,3.1,8.2,1.3,3.6,2.1,3.1,3.1,3.1,1.1,7.2,4.5,5.1,3.2,2.5,9.1),
label=c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4),
category=c("A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C"))

val weigh value label category
1 1 10 4.1 1 A
2 2 10 3.2 1 B
3 3 10 4.3 1 C
4 4 11 1.1 1 A
5 5 11 2.2 1 B
6 6 11 5.3 1 C
7 7 20 2.1 2 A
8 8 20 2.2 2 B
9 9 20 3.3 2 C
10 10 21 3.1 2 A
11 11 21 8.2 2 B
12 12 21 1.3 2 C
13 13 30 3.6 3 A
14 14 30 2.1 3 B
15 15 30 3.1 3 C
16 16 31 3.1 3 A
17 17 31 3.1 3 B
18 18 31 1.1 3 C
19 19 40 7.2 4 A
20 20 40 4.5 4 B
21 21 40 5.1 4 C
22 22 41 3.2 4 A
23 23 41 2.5 4 B
24 24 41 9.1 4 C

这是预期的输出

 val weigh value label category
1 1 10 4.1 1 A
5 6 11 5.3 1 C
2 2 10 3.2 1 B
10 10 21 3.1 2 A
3 11 21 8.2 2 B
9 9 20 3.3 2 C
2 19 40 7.2 4 A
4 20 40 4.5 4 B
6 24 41 9.1 4 C

我尝试遵循,但没有得到预期的输出。在这里,我只获取 > 4 的值,而不是带有此标签的该类别中的所有最大数字

das1 <- das[das$value >4,]

result <- das1 %>%
group_by(category,label) %>%
slice(which.max(value))


val weigh value label category
1 1 10 4.1 1 A
5 6 11 5.3 1 C
3 11 21 8.2 2 B
2 19 40 7.2 4 A
4 20 40 4.5 4 B
6 24 41 9.1 4 C

最佳答案

我们可以首先group_by labelfilter具有任何值> 4的组,然后在每个 labelcategory 中仅选择具有 max value 的行。

library(dplyr)

das %>%
group_by(label) %>%
filter(any(value > 4)) %>%
ungroup() %>%
group_by(label, category) %>%
slice(which.max(value))


# val weigh value label category
# <int> <dbl> <dbl> <dbl> <fct>
#1 1 10 4.1 1 A
#2 2 10 3.2 1 B
#3 6 11 5.3 1 C
#4 10 21 3.1 2 A
#5 11 21 8.2 2 B
#6 9 20 3.3 2 C
#7 19 40 7.2 4 A
#8 20 40 4.5 4 B
#9 24 41 9.1 4 C

关于r - 根据 group_by 行及其列值选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55054895/

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