gpt4 book ai didi

r - 如何输出数据框中行范围内的最大值?

转载 作者:行者123 更新时间:2023-12-01 21:59:36 24 4
gpt4 key购买 nike

假设我有以下数据和数据框:

sample_data <- c(1:14)
sample_data2 <- c(NA,NA,NA, "break", NA, NA, "break", NA,NA,NA,NA,NA,NA,"break")
sample_df <- as.data.frame(sample_data)
sample_df$sample_data2 <- sample_data2

当我打印这个数据框时,结果如下:

   sample_data sample_data2
1 1 <NA>
2 2 <NA>
3 3 <NA>
4 4 break
5 5 <NA>
6 6 <NA>
7 7 break
8 8 <NA>
9 9 <NA>
10 10 <NA>
11 11 <NA>
12 12 <NA>
13 13 <NA>
14 14 break

我如何对其进行编程以便在每次“中断”时输出该行的最大值?例如,我希望代码输出 (4,7,14) 的集合。此外,我希望它只找到下一个“中断”间隔之间的最大值。如果我使用了任何不正确的术语,我提前道歉。

最佳答案

我构建了寻找单词“break”的组,然后将结果向上移动一行。然后一些 dplyr 命令获取每个组的最大值。

library(dplyr)
sample_df_new <- sample_df %>%
mutate(group = c(1, cumsum(grepl("break", sample_data2)) + 1)[1:length(sample_data2)]) %>%
group_by(group) %>%
summarise(group_max = max(sample_data))

> sample_df_new
# A tibble: 3 x 2
group group_max
<dbl> <dbl>
1 1 4
2 2 7
3 3 14

关于r - 如何输出数据框中行范围内的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54164110/

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