Data I have:

A B
1 a
2 c
2 e
3 f
4 h
5 c
5 e

What I want:

如果A的不同组中B的所有值匹配,那么它们在同一组中.在这种情况下,所有B值(c和e)都匹配2和5.

A B Group
1 a 1
2 c 2
2 e 2
3 f 3
4 h 4
5 c 2
5 e 2

Code I attempted:

library(readxl)
library(dplyr)
library(stringr)
data1 <- read_excel("testing.xlsx")
data2 <- data1 %>% 
  group_by(A) %>% 
  group_by(B) %>% 
  mutate(Group = cur_group_id()) %>% 
  ungroup()

What I’m getting from this code:

A B Group
1 a 1
2 c 2
2 e 3
3 f 4
4 h 5
5 c 2
5 e 3

NOTE:我正在操作的原始数据已左联,然后分组.

推荐答案

一个技巧是按照共享相同"A"的元素列表进行分组. 然后您就可以正确使用cur_group_id.我首先添加arrange调用,以确保即使原始数据中的顺序不同,相同的组也被识别为相同的组.

library(dplyr)
library(tidyr)
dat |> 
  arrange(A, B) |> 
  summarise(B = list(B), .by = A) |> 
  mutate(Group = cur_group_id(), .by = B) |> 
  unnest_longer(B)

#   A B Group
# 1 1 a     1
# 2 2 c     2
# 3 2 e     2
# 4 3 f     3
# 5 4 h     4
# 6 5 c     2
# 7 5 e     2

R相关问答推荐

R -模运算后的加法

如何将y轴上的线定位得彼此更近

无法将传奇添加到cowplot多情节中

查找图下的面积

从开始时间和结束时间导出时间

在使用ggroove后,将图例合并在gplot中

然后根据不同的列值有条件地执行函数

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

错误:非常长的R行中出现意外符号

R-更新面内部的栅格值

如果可能,将数字列转换为整数,否则保留为数字

矩阵的堆叠条形图,条形图上有数字作为标签

线性模型斜率在减少原始数据时提供NA

哪一行和行和 Select 特定行,但是考虑到Nas

更改STAT_VALLES/STAT_PEAKS中的箭头线宽/大小

如何在ggplot2中创建多个y轴(每个变量一个)

随机将数据帧中特定列上的某些行设置为NA

如何用不同长度的向量填充列表?

如何将图例文本添加到图例符号中

使用&Fill&Quot;在gglot中创建 colored颜色 渐变