r - 识别逆序组合
问题描述
我有看起来像这样的数据:
X Y TOTAL PAIR
1 A B 1 AB
2 B A 2 BA
3 C D 3 CD
4 D C 4 DC
5 E F 5 EF
我想添加一个变量 PAIR_ID 以任何组合捕获相同的 ID。所以顺序无关紧要。它应该如下所示:
X Y TOTAL PAIR PAIR_ID
1 A B 1 AB 1
2 B A 2 BA 1
3 C D 3 CD 2
4 D C 4 DC 2
5 E F 5 EF 3
目标是获得一个包含每对总数的 df。所以是这样的:
PAIR_ID PAIR_TOTAL
1 1 3
2 2 7
3 3 5
我的问题是如何获得该 PAIR_ID 变量。我难住了。感谢任何帮助。
解决方案
一种选择是
library(dplyr)
out <- df1 %>%
mutate(PAIR_ID = group_indices(., pmax(X, Y), grp2 = pmin(X,Y)) )
out %>%
group_by(PAIR_ID) %>%
summarise(PAIR_TOTAL = sum(TOTAL))
# A tibble: 3 x 2
# PAIR_ID PAIR_TOTAL
# <int> <int>
#1 1 3
#2 2 7
#3 3 5
数据
df1 <- structure(list(X = c("A", "B", "C", "D", "E"), Y = c("B", "A",
"D", "C", "F"), TOTAL = 1:5, PAIR = c("AB", "BA", "CD", "DC",
"EF")), class = "data.frame", row.names = c("1", "2", "3", "4",
"5"))
推荐阅读
- typescript - Testcafe 找不到包含在迭代器中的测试
- javascript - 单击时文本区域中的光标位置
- java - java - 多次绑定相同的pdf时如何减小输出pdf的大小
- javascript - 如何在 Youtube 上记住用户在音频时间线上的点?
- python - histogram2d 和 pcolormesh 的对齐问题
- azure - 用 Node.JS 编写并具有 AD 安全性的 Azure Web App,访问此页面的用户是谁?
- css - 具有变化数据的弹性盒订单
- javascript - 图片预览提交后如何去掉?
- php - 在每个用户的给定日期范围内插入缺失的日期
- java - 当在我给定的代码中输入整数以外的输入时,它会进入无限循环