简体   繁体   English

R 中的数据框按列中的重复值分组

[英]Data frame in R group by duplicated values in column

I am struggling to perform a summarise/count operation in a dataframe in R.我正在努力在 R 的 dataframe 中执行汇总/计数操作。

I believe that this is caused by the fact that there are values in column A, which are mapped to at least two entries in column B.我认为这是因为 A 列中有值,这些值映射到 B 列中的至少两个条目。

A sample dput below:下面的示例输入:

structure(list(exercise_id = c(10026L, 10027L, 10028L, 10029L, 
10030L, 10031L, 10032L, 10033L, 10034L, 10035L, 10036L, 10037L, 
10038L, 10039L, 10040L, 10041L, 10042L, 10043L, 10044L, 10045L, 
10046L, 10047L, 10048L, 10049L, 10050L, 10051L, 10052L, 10053L, 
10054L, 10060L, 10061L, 10062L, 10063L, 10064L, 10065L, 10066L, 
10067L, 10068L, 10069L, 10070L, 10071L, 10072L, 10073L, 10074L, 
10075L, 10076L, 10077L, 10078L, 10079L, 10080L, 10087L, 10088L, 
10089L, 10090L, 10091L, 10092L, 10093L, 10094L, 10095L, 10096L, 
10097L, 10098L, 10099L, 10100L, 10101L, 10102L, 10103L, 10104L, 
10105L, 10105L, 10107L, 10108L, 10109L, 10110L, 10111L, 10112L, 
10114L, 10115L, 10116L, 10117L, 10118L, 10119L, 10120L, 10121L, 
10122L, 10123L, 10124L, 10125L, 10126L, 10127L, 10128L, 10129L, 
10130L, 10131L, 10132L, 10133L, 10134L, 10136L, 10137L, 10138L, 
10139L, 10140L, 10141L, 10142L, 10143L, 10144L, 10145L, 10146L, 
10147L, 10148L, 10149L, 10150L, 10151L, 10152L, 10153L, 10155L, 
10156L, 10157L, 10158L, 10159L, 10160L, 10161L, 10162L, 10163L, 
10164L, 10165L, 10166L, 10167L, 10168L, 10169L, 10170L, 10171L, 
10172L, 10173L, 10174L, 10175L, 10176L, 10177L, 10178L, 10179L, 
10180L, 10181L, 10182L, 10183L, 10184L, 10185L, 10187L, 10188L, 
10189L, 10190L, 10194L, 10195L, 10196L, 10197L, 10198L, 10199L, 
10200L, 10201L, 10202L, 10203L, 10204L, 10205L, 10206L, 10214L, 
10215L, 10216L, 10217L, 10218L, 10219L, 10220L, 10221L, 10221L, 
10223L, 10224L, 10225L, 10226L, 10227L, 10228L, 10229L, 10235L, 
10236L, 10237L, 10238L, 10239L, 10378L, 10379L, 10380L, 10381L, 
10382L, 10383L, 10384L, 10385L, 10386L, 10387L, 10388L, 10389L, 
10390L, 10391L, 10392L, 10393L, 10394L, 10395L, 10396L, 10397L, 
10398L, 10399L, 10400L, 10401L, 10402L, 10403L, 10404L, 10405L, 
10462L, 10463L, 10464L, 10465L, 10466L, 10467L, 10468L, 10469L, 
10470L, 10471L, 10472L, 10473L, 10474L, 10475L, 10476L, 10477L, 
10478L, 10479L, 10480L, 10481L, 10482L, 10483L, 10484L, 10485L, 
10486L, 10487L, 10488L, 10489L, 10490L, 10491L, 10492L, 10493L, 
10494L, 10495L, 10496L, 10497L, 10498L, 10499L), objective_1 = c("Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Działania na liczbach naturalnych.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Liczby naturalne w dziesiątkowym układzie pozycyjnym.", 
"Liczby naturalne w dziesiątkowym układzie pozycyjnym.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych.", "Działania na liczbach naturalnych.", 
"Działania na liczbach naturalnych."), nested_level = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), row.names = c(27892L, 27893L, 
27894L, 27895L, 27896L, 27897L, 27898L, 27899L, 27900L, 27901L, 
27902L, 27903L, 28058L, 28059L, 28061L, 28063L, 28064L, 28065L, 
28066L, 28067L, 28068L, 28069L, 28071L, 28072L, 28246L, 28247L, 
28248L, 28249L, 28075L, 42795L, 42797L, 42799L, 42801L, 27904L, 
28076L, 28077L, 28078L, 28255L, 28257L, 28259L, 28260L, 28261L, 
28403L, 28405L, 28407L, 28335L, 28336L, 42805L, 42807L, 28392L, 
27917L, 27919L, 27921L, 27923L, 28082L, 28083L, 28085L, 28087L, 
28089L, 28091L, 28093L, 28095L, 28097L, 28098L, 28099L, 28272L, 
28401L, 28402L, 28404L, 42858L, 28356L, 42812L, 42813L, 42814L, 
42815L, 42791L, 27881L, 27882L, 27883L, 27884L, 27885L, 27886L, 
28040L, 27887L, 27888L, 28041L, 28042L, 28043L, 28044L, 28045L, 
28251L, 28252L, 28253L, 28254L, 28256L, 28258L, 28046L, 28354L, 
28355L, 28423L, 28424L, 28426L, 28427L, 28428L, 28429L, 28412L, 
28413L, 28414L, 28415L, 28101L, 28416L, 28102L, 28417L, 42808L, 
42809L, 28309L, 28310L, 28311L, 28312L, 28313L, 28314L, 28315L, 
28316L, 28317L, 28318L, 28319L, 28320L, 28321L, 28322L, 28323L, 
28324L, 28325L, 28326L, 28328L, 28330L, 28332L, 28294L, 28296L, 
28298L, 28300L, 28073L, 28074L, 28250L, 28345L, 28347L, 28349L, 
42831L, 42832L, 42834L, 42835L, 42836L, 27906L, 27907L, 27908L, 
28079L, 28080L, 28081L, 28262L, 28406L, 28425L, 42803L, 42804L, 
42806L, 28306L, 28307L, 28308L, 42810L, 42811L, 27925L, 27927L, 
28396L, 42859L, 28266L, 28397L, 28350L, 28351L, 28352L, 27928L, 
28100L, 42839L, 42841L, 42843L, 42846L, 42850L, 28124L, 28125L, 
28127L, 28129L, 28131L, 28132L, 28133L, 28134L, 27961L, 27962L, 
27963L, 27964L, 27966L, 27968L, 28135L, 28137L, 28139L, 28141L, 
28142L, 28143L, 28144L, 28145L, 28146L, 28147L, 28148L, 28111L, 
28113L, 28116L, 27988L, 27989L, 27990L, 27991L, 27992L, 27993L, 
27995L, 27996L, 27997L, 27998L, 27999L, 28002L, 28005L, 28007L, 
28170L, 28173L, 28176L, 28179L, 28181L, 28182L, 28183L, 28184L, 
28185L, 28187L, 28118L, 28190L, 28191L, 28192L, 28119L, 28120L, 
28022L, 28121L, 28122L, 28123L, 28016L, 28110L, 28019L, 28112L
), class = "data.frame")

I have tried the dplyr package, especially the group_by and summarise function.我试过 dplyr package,尤其是 group_by 和总结 function。 But I get an error message like this:但我收到这样的错误消息:

Column `output$exercise_id` must be length 14 (the group size) or one, not 83329

This is what I have tried:这是我尝试过的:

output <- output %>% group_by(objective_1) %>% count(output$exercise_id)

There are a few ways we could go about this.有几种方法可以解决这个问题。 If we want to see how many unique values of exercise_id are within the groups defined by objective_1 we could use n_distinct() :如果我们想查看由objective_1定义的组中有多少个exercise_id的唯一值,我们可以使用n_distinct()

library(dplyr)

output %>% 
  group_by(objective_1) %>% 
  summarise(total = n_distinct(exercise_id))
#> # A tibble: 2 x 2
#>   objective_1                                           total
#>   <chr>                                                 <int>
#> 1 Dzialania na liczbach naturalnych.                      220
#> 2 Liczby naturalne w dziesiatkowym ukladzie pozycyjnym.    30

Another option could be to use count() on just your objective_1 variable:另一种选择可能是仅在您的objective_1变量上使用count()

output %>% 
  count(objective_1)
#> # A tibble: 2 x 2
#>   objective_1                                               n
#>   <chr>                                                 <int>
#> 1 Dzialania na liczbach naturalnych.                      220
#> 2 Liczby naturalne w dziesiatkowym ukladzie pozycyjnym.    30

Similarly, a base option is table() :同样,基本选项是table()

table(output$objective_1)
#> 
#>                    Dzialania na liczbach naturalnych. 
#>                                                   220 
#> Liczby naturalne w dziesiatkowym ukladzie pozycyjnym. 
#>                                                    30

Finally, I am quite fond of the tabyl() function in library(janitor) :最后,我非常喜欢library(janitor)中的tabyl() function :

library(janitor)

output %>% 
  tabyl(objective_1)
#>                                            objective_1   n percent
#>                     Dzialania na liczbach naturalnych. 220    0.88
#>  Liczby naturalne w dziesiatkowym ukladzie pozycyjnym.  30    0.12

Hope this helps!希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM