gpt4 book ai didi

r - 基于其他列中的公共(public)值的重复行?

转载 作者:行者123 更新时间:2023-12-05 01:51:51 25 4
gpt4 key购买 nike

我有一个数据框,其中包括:一列具有个人 ID(唯一),第二列显示一个共同的唯一变量。也就是说,第 1 列中的每个人都采取了相同的操作,如 B 列所示。

我想在 R 中编写代码来创建新行,根据 B 列将 A 列中的每个人配对。

也就是说,给定这个例子:

person <- c("a", "b", "c", "d", "e", "f") 
action <- c("x", "x", "x", "y", "y", "y")
data.frame(person, action)

我想创建这个:

person1 <- c("a", "a", "b", "d", "d", "e") 
person2 <- c("b", "c", "c", "e", "f", "f")
data.frame(person1, person2)

最佳答案

使用 group_modify()combn() 的方法:

library(dplyr)

df %>%
group_by(action) %>%
group_modify(~ as_tibble(t(combn(pull(.x, person), 2))))

# A tibble: 6 × 3
# Groups: action [2]
action V1 V2
<chr> <chr> <chr>
1 x a b
2 x a c
3 x b c
4 y d e
5 y d f
6 y e f

关于r - 基于其他列中的公共(public)值的重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71956429/

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