如何解决我将如何扩展变量数据框以表示 R 中的交互网络?
我有一个家庭变量的“阳性”案例表。我想最终使用 R 在 iGraph 中输出一个网络图。我想将每个家庭表示为一个网络,因此代表每个家庭中的正负值。我的输入数据框如下:
ID | 结果 | 家庭 | 家庭人数 |
---|---|---|---|
A | 正面 | H1 | 2 |
B | 正面 | H1 | 2 |
C | 正面 | H2 | 3 |
D | 正面 | H3 | 2 |
ID | 结果 | 家庭 | 家庭人数 |
---|---|---|---|
A | 正面 | H1 | 2 |
B | 正面 | H1 | 2 |
C | 正面 | H2 | 3 |
C1 | 否定 | H2 | 2 |
D | 正面 | H3 | 3 |
D1 | 否定 | H3 | 3 |
D2 | 否定 | H3 | 3 |
从这一点来看,我需要一个表示网络边缘列表的数据框,即,如果一个人与其家庭代表的另一个人有交互(双向)。这看起来像:
ID | 互动 | 家庭 |
---|---|---|
A | B | H1 |
B | A | H1 |
C | C1 | H2 |
C1 | C | H2 |
D | D1 | H3 |
D | D2 | H3 |
D1 | D | H3 |
D1 | D2 | H3 |
D2 | D | H3 |
D2 | D1 | H3 |
这个边缘列表将与正面和负面结果的“属性”列表一起输入,然后可用于构建网络。我只是在努力以正确的格式获取数据才能开始!
我在 R 和堆栈溢出方面有点菜鸟 - 我希望以上内容有意义并且很高兴澄清!
解决方法
我认为您不需要 igraph
来实现您的目标。下面是一个 data.table
选项
> setDT(df)[,CJ(ID,Interaction = ID),Household][ID != Interaction,c(2,3,1)]
ID Interaction Household
1: A B H1
2: B A H1
3: C C1 H2
4: C1 C H2
5: D D1 H3
6: D D2 H3
7: D1 D H3
8: D1 D2 H3
9: D2 D H3
10: D2 D1 H3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。