gpt4 book ai didi

r - 使用 dplyr 将数据框中的有序对转换为无序对

转载 作者:行者123 更新时间:2023-12-02 21:35:50 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

library(dplyr)
df <- data_frame(doc.x = c("a", "b", "c", "d"),
doc.y = c("b", "a", "d", "c"))

所以df是:

Source: local data frame [4 x 2]

doc.x doc.y
(chr) (chr)
1 a b
2 b a
3 c d
4 d c

这是一个有序对的列表,ad,还有 da,等等在。什么是类似于 dplyr 的方法来仅返回此数据框中的无序对列表?即

  doc.x doc.y
(chr) (chr)
1 a b
2 c d

最佳答案

使用pminpmax按字母顺序对这些对进行排序,即将(b,a)变成(a,b),然后过滤掉所有重复项。

df %>%
mutate(dx = pmin(doc.x, doc.y), dy = pmax(doc.x, doc.y)) %>%
distinct(dx, dy) %>%
select(-dx, -dy)
  doc.x doc.y
(chr) (chr)
1 a b
2 c d

关于r - 使用 dplyr 将数据框中的有序对转换为无序对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32783727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com