You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中按日期将ID列拆分为From和To列构建关联数据框?

问题

我正在进行社交网络分析,需要创建一个关联数据框。现有包含Date和ID两列的数据,希望按日期将ID列拆分为From和To列,以此展示同一天共同出现的ID对。

原始数据:

Date    ID
1   2010-01-02  A
2   2010-01-02  A
3   2010-01-02  A
4   2010-01-02  A
5   2010-01-02  A
6   2010-01-02  A
7   2010-01-02  A
8   2010-01-02  A
9   2010-01-02  A
10  2010-01-02  W
11  2010-01-02  W
12  2010-01-02  W
13  2010-01-02  W
14  2010-01-11  A
15  2010-01-11  A
16  2010-01-11  A
17  2010-01-11  A
18  2010-01-11  A
19  2010-01-11  A
20  2010-01-11  A
21  2010-01-11  A
22  2010-01-11  A
23  2010-01-11  G
24  2010-01-11  G
25  2010-01-11  G
26  2010-01-11  K
27  2010-01-11  K
28  2010-01-11  K
29  2010-01-11  W
30  2010-01-11  W

期望输出:

Date   From To
2010-01-02  A   W
2010-01-11  A   G
2010-01-11  A   K 
2010-01-11  A   W
2010-01-11  W   G
2010-01-11  W   K
2010-01-11  G   K
解决方案

方法一:R语言实现

核心思路是先按日期提取唯一ID,再生成每个日期下ID的无向两两组合:

library(dplyr)
library(tidyr)

# 构造原始数据框(替换为你的实际数据读取逻辑)
df <- data.frame(
  Date = c(rep("2010-01-02",13), rep("2010-01-11",17)),
  ID = c(rep("A",9), rep("W",4), rep("A",9), rep("G",3), rep("K",3), rep("W",2))
)

# 生成目标关联数据框
result <- df %>%
  distinct(Date, ID) %>%  # 按日期去重ID
  group_by(Date) %>%
  summarise(pairs = list(t(combn(ID, 2)))) %>%  # 生成所有两两无向组合
  unnest_wider(pairs, names_sep = "") %>%
  rename(From = pairs1, To = pairs2) %>%
  ungroup()

print(result)

方法二:Python(Pandas)实现

利用分组和迭代器生成组合,再拼接成结果:

import pandas as pd
from itertools import combinations

# 构造原始数据(替换为你的实际数据读取逻辑)
data = {
    "Date": ["2010-01-02"]*13 + ["2010-01-11"]*17,
    "ID": ["A"]*9 + ["W"]*4 + ["A"]*9 + ["G"]*3 + ["K"]*3 + ["W"]*2
}
df = pd.DataFrame(data)

# 定义分组处理函数
def generate_pairs(group):
    unique_ids = group["ID"].unique()
    return pd.DataFrame(combinations(unique_ids, 2), columns=["From", "To"])

# 分组生成组合并整理结果
result = df.groupby("Date").apply(generate_pairs).reset_index(level=1, drop=True).reset_index()

print(result)

内容的提问来源于stack exchange,提问作者Nadine Hussein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 18:43:12