r - 在 R 中分组和按行自定义排列

标签 r dataframe dplyr tidyverse

我有超过 10k+ 行的下表:

set.seed(123)
df <- data.frame(col1 = c('A','A','A','A', 'B','B','B','B', 'C','C','C','C'),
                  col2 = c('flower','pet','bird','tree','flower','pet','bird','tree','flower','pet','bird','tree'),
                  col3 = sample(0:25, 12, replace = TRUE))

   col1   col2 col3
1     A flower   14
2     A    pet   18
3     A   bird   13
4     A   tree    2
5     B flower    9
6     B    pet   17
7     B   bird   21
8     B   tree   10
9     C flower    4
10    C    pet   19
11    C   bird   13
12    C   tree   21

我想按 col1 分组排列每一行然后按顺序排列为pet , tree , bird , flower来自 col2然后在 col1 中只保留一次出现的值.

示例所需数据框:

   col1   col2 col3
1     A    pet   18
2         tree    2
3         bird   13
4       flower   14
5     B    pet   17
6         tree   10
7         bird   21
8       flower    9
9     C    pet   19
10        tree   21
11        bird   13
12      flower    4

我找不到上面提到的如何排列行。 如何做到这一点?

最佳答案

我不确定摆脱这些值是否是个好主意,因为会丢失信息。但这是摆脱重复:

df %>% arrange(col1) %>%
  mutate_at(vars(col1), funs(replace(., duplicated(.), "")))

关于r - 在 R 中分组和按行自定义排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67216572/

相关文章:

R lazyeval:将参数传递给 dplyr::filter

r - 如何使用 ggplot 创建并排条形图(用于多个系列)?

r - 如何找到未引用的环境?

r - colnames 函数如何分配新的列名?

python - 在 Pandas 数据框中的不同列上使用 lambda if 条件

r - 将数据框的列字符串值转换为整数

r - 使用 ggplot facets 时增加 Shiny 的绘图大小

python - 在 Pandas 中重新格式化数据框

r - dplyr - 聚合不正确?

R:如何在取消嵌套双重嵌套的 tibble 时保留名称?