计算我可以在 R dplyr 中找到一个元素有多少个不同的组

LDT*_*LDT 3 r dplyr data.table tidyr tidyverse

我的数据看起来像这样

\n
library(tidyverse)\n\ndf3 <- tibble(fruits=c("apple","banana","ananas","apple","ananas","apple","ananas"),\n              position=c("135","135","135","136","137","138","138"), \n              counts = c(100,200,100,30,40,50,100))\n\ndf3\n#> # A tibble: 7 \xc3\x97 3\n#>   fruits position counts\n#>   <chr>  <chr>     <dbl>\n#> 1 apple  135         100\n#> 2 banana 135         200\n#> 3 ananas 135         100\n#> 4 apple  136          30\n#> 5 ananas 137          40\n#> 6 apple  138          50\n#> 7 ananas 138         100\n
Run Code Online (Sandbox Code Playgroud)\n

由reprex 包于 2022 年 2 月 21 日创建(v2.0.1)

\n

我想对水果进行分组并计算每个 水果所属的位置和数量 。\n我希望我的数据看起来像

\n
fruits    groups    n_groups     sum_count\napple  135,136,138      3            180\nbanana      135         1            200\nananas 135,137,138      3            240\n
Run Code Online (Sandbox Code Playgroud)\n

groups 列可以是字符列表。我不太关心结构。

\n

感谢您抽出宝贵的时间。\n非常感谢您的指导。

\n

det*_*det 6

我不太明白您想要从您的描述中得到什么,但是您可以data.frame通过将其分组来实现您的愿望fruits

df3 %>% 
  group_by(fruits) %>% 
  summarise(groups = list(position), n_groups = n(), counts = sum(counts))

  fruits groups    n_groups counts
  <chr>  <list>       <int>  <dbl>
1 ananas <chr [3]>        3    240
2 apple  <chr [3]>        3    180
3 banana <chr [1]>        1    200
Run Code Online (Sandbox Code Playgroud)