合并数据文件

斯坦R

我在 R 中有以下数据框:

Id   Class
@a    64
@b    7
@c    98 

第二个数据框:

SOURCE    TARGET 
@d        @b
@c        @a 

这描述了社交网络中的节点和边。用户(前面都是@)属于一个特定的社区,数量列在列类中。为了分析列之间的连接,我想合并这些数据框并创建一个如下所示的新数据框:

SOURCE    TARGET    SOURCE.Class    TARGET.Class 
@a        @i        56               2
@f        @k        90               49 

当我尝试merge()R 时停止响应,我需要终止 R。数据帧构成 20000(节点文件)和 30000(边缘文件)行。

然后我想知道给定源类中有多少记录具有相同的目标类和类之间的连接百分比。

如果有人能帮助我,我会很高兴,因为我对 R 很陌生。

编辑:我想我设法通过此代码使用match()而不是merge()(rt_node 包含列“id”、“class”和 rt_node 包含列“源”、“目标”)来创建列

#match source in rt_edges with id in rt_node
match(rt_edges$Source,rt_nodes$id)

#match target in rt_edges with id in rt_node
match(rt_edges$Target,rt_nodes$id)

#create source_class 
rt_nodes$modularity_class[match(rt_edges$Source,rt_nodes$id)]
rt_edges$Source_Class=rt_nodes$modularity_class[match(rt_edges$Source,rt_nodes$id)]

#create target_class
rt_nodes$modularity_class[match(rt_edges$Target,rt_nodes$id)]
rt_edges$Target_Class=rt_nodes$modularity_class[match(rt_edges$Target,rt_nodes$id)]

现在我只需要弄清楚如何找到每个类中的连接百分比以及与其他类的连接百分比。关于如何做到这一点的任何提示?

乌韦

问题 1:合并

这需要两个单独的连接操作:rt_edgesrt_nodeson的初始连接Target和中间结果与rt_nodeson的后续连接Source此外,所有行rt_edges都应出现在结果中。

下面的方法使用data.table. (我采用了 OP 在其 Q 的编辑代码中使用的变量和列的命名,但请注意,这与 OP 提供的示例数据不一致。)

读取数据

library(data.table)
rt_nodes <- fread(
  "id   Class
  @a    64
  @b    7
  @c    98
  @d    23
  @f    59")
rt_edges <-fread(
  "Source    Target 
  @d        @b
  @c        @a
  @a        @e")

请注意,已在 OP 提供的示例数据中添加了额外的行以演示

  • @f不包含在边中的节点 ( ) 和
  • @a -> @e缺少一个 id的边 ( ) rt_nodes

双重连接

默认情况下,联接data.table是右联接。因此,rt_edges出现在右侧。

result <- rt_nodes[rt_nodes[rt_edges, on = c(id = "Target")], on = c(id = "Source")]

# rename columns
setnames(result, c("Source", "Source.Class", "Target", "Target.Class"))

result
#   Source Source.Class Target Target.Class
#1:     @d           23     @b            7
#2:     @c           98     @a           64
#3:     @a           64     @e           NA

所有三个边都出现在结果中。NA指示@e是从丢失rt_nodes

问题2

OP 包含了第二个问题(同时还创建了一个新帖子

然后我想知道给定源类中有多少记录具有相同的目标类和类之间的连接百分比。

result[, .(.N, share_of_occurrence_in_Target.Class = sum(Source.Class == Target.Class)/.N), 
       by = Source.Class]
#   Source.Class N share_of_occurrence_in_Target.Classs
#1:           23 1                                    0
#2:           98 1                                    0
#3:           64 1                                   NA

这里的计数为 1,份额为 0,因为样本数据不包含足够的匹配类案例。但是,该代码已经过验证,可以与OP 的另一篇文章中提供的数据一起使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

合并/平均多个数据文件

来自分类Dev

合并/平均多个数据文件

来自分类Dev

在R中合并一堆数据文件

来自分类Dev

Jekyll:我可以合并集合和数据文件吗?

来自分类Dev

从数据文件创建列表

来自分类Dev

从txt加载数据文件

来自分类Dev

删除“ Outlook数据文件”

来自分类Dev

MySQL加载数据文件

来自分类Dev

wcf大数据文件

来自分类Dev

Maven/Jacoco - 在成功测试和 jacoco 数据文件合并后,如何获得合并报告?

来自分类Dev

合并和合并两个数据文件的python代码中的问题

来自分类Dev

YARN上的Apache Spark:大量输入数据文件(在spark中合并多个输入文件)

来自分类Dev

Python将来自不同文件的行合并为一个数据文件

来自分类Dev

从Json解析值数据数据文件

来自分类Dev

从数据文件中读取数据点

来自分类Dev

从数据文件中提取数据

来自分类Dev

更新/合并 2 个具有不同列名的数据文件

来自分类Dev

如何通过与另一个数据文件进行比较来提取数据文件中的某些行?(合并中)

来自分类Dev

无法打开BCP主机数据文件

来自分类Dev

QML数据文件夹

来自分类Dev

从输入文本jQuery获取数据文件

来自分类Dev

设置多个数据文件的方法

来自分类Dev

更改SPSS数据文件的编码

来自分类Dev

数据文件与页面的匹配

来自分类Dev

加载数据文件-拼命卡住

来自分类Dev

matlab数据文件到pandas DataFrame

来自分类Dev

如何从数据文件读入向量结构

来自分类Dev

gnuplot从数据文件列读取线型

来自分类Dev

数据文件中的几个图