首页 > 解决方案 > 不使用 unique() 的重复数据帧

问题描述

我需要在分组数据框中获取每组的行号。这似乎可以根据需要工作:

一些数据:

library(dplyr)

my_mtcars <- mtcars %>% 
  rownames_to_column('Car') %>% 
  
  # add some duplicate rows
  add_row(.[3,]) %>% 
  add_row(.[7,]) %>% 
  add_row(.[10,]) %>% 
  group_by(Car) %>% 
  mutate(n = n(),
         rn = row_number())

my_mtcars %>% arrange(desc(n), Car) %>% View

在此处输入图像描述

这似乎让我得到了我需要的东西,每组 row_number()。但是,我需要将 chr vect 传递给 group by,而不是字段名称。如果我将 group_by 行更改group_by(vars(c('Car')))为行号不再是每组而是整个 df 。

在此处输入图像描述

在将 chr 字符串传递给分组依据时,如何获取每个组的 row_number()?

标签: rdplyr

解决方案


我们也可以转换为symbol 并使用!!

library(dplyr)
string1 <- "Car"
group_by(!! rlang::sym(string1))

推荐阅读