我的資料框看起來像這樣
library(tidyverse)
df1 <- tibble(col1= c("apple","apple","banana","banana"),
col2 = c("appl","aple","banan","bananb"),
count_col1=c(1,1,4,4), count_col2=c(3,4,1,1))
df1
#> # A tibble: 4 × 4
#> col1 col2 count_col1 count_col2
#> <chr> <chr> <dbl> <dbl>
#> 1 apple appl 1 3
#> 2 apple aple 1 4
#> 3 banana banan 4 1
#> 4 banana bananb 4 1
由reprex 包于 2022-02-17 創建(v2.0.1)
我想在 grouping_by col1 之后選擇基于 count_col1 和 count_col2 具有最大值的行。
我希望我的資料看起來像這樣
col1 col2 count_col1 count_col2
apple aple 1 4
banana banan 4 1
banana bananb 4 1
對于一列,您可以寫一些東西
df1 %>%
slice(which.max(count_col1))
但不是兩個
uj5u.com熱心網友回復:
我們可以得到“count”列的按行最大值pmax,按“col1”分組,“Max”列的值filter所在的行。max
library(dplyr)
df1 %>%
mutate(Max = pmax(count_col1, count_col2) ) %>%
group_by(col1) %>%
filter(Max == max(Max)) %>%
ungroup %>%
select(-Max)
-輸出
# A tibble: 3 × 4
col1 col2 count_col1 count_col2
<chr> <chr> <dbl> <dbl>
1 apple aple 1 4
2 banana banan 4 1
3 banana bananb 4 1
我們也可以使用slice_max
library(purrr)
df1 %>%
group_by(col1) %>%
slice_max(invoke(pmax, across(starts_with("count")))) %>%
ungroup
# A tibble: 3 × 4
col1 col2 count_col1 count_col2
<chr> <chr> <dbl> <dbl>
1 apple aple 1 4
2 banana banan 4 1
3 banana bananb 4 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/426659.html
下一篇:如何將R資料框轉換為指標值行
