gpt4 book ai didi

r - r中的时变网络

转载 作者:行者123 更新时间:2023-12-01 01:48:11 24 4
gpt4 key购买 nike

我有关于在大学俱乐部每周社交时间可能和确实发生的每一次互动的数据

我的数据示例如下

structure(list(from = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("A",
"B", "C"), class = "factor"), to = structure(c(2L, 3L, 2L, 3L,
2L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("A",
"B", "C"), class = "factor"), timestalked = c(0L, 1L, 0L, 4L,
1L, 2L, 0L, 1L, 0L, 2L, 1L, 0L, 1L, 2L, 1L, 0L, 0L, 0L), week = structure(c(1L,
1L, 3L, 3L, 2L, 2L, 1L, 1L, 3L, 3L, 2L, 2L, 1L, 1L, 3L, 3L, 2L,
2L), .Label = c("1/1/2010", "1/15/2010", "1/8/2010"), class = "factor")), .Names = c("from",
"to", "timestalked", "week"), class = "data.frame", row.names = c(NA,
-18L))

我正在尝试计算网络统计信息,例如 A 的中心性, B , C对于每一周、过去两周和年初至今。我让这个工作的唯一方法是在我想要分析的时间单位中手动分解文件,但我希望必须有一种不那么费力的方法。

timestalked是 0 这应该被视为没有边缘

输出将产生 .csv具有以下内容:
actor  cent_week1 cent_week2 cent_week3 cent_last2weeks cent_yeartodate
A
B
C

cent_week1是 1/1/2010 中心性; cent_last2weeks正在考虑 1/8/2010 和 1/15/2010;和 cent_yeartodate一次性考虑所有数据。这被应用于包含数百万次观察的更大的数据集。

最佳答案

无法发表评论,所以我正在写一个“答案”。如果你想对 timestalked 执行一些数学运算并通过 from 获取值(在您的示例中没有找到任何名为 actor 的变量),这是一个 data.table可能有帮助的方法:

dat <- as.data.table(dat) # or add 'data.table' to the class parameter
dat$week <- as.Date(dat$week, format = "%m/%d/%Y")
dat[, .(cent = mean(timestalked)), by = list(from, weeknum = week(week))]

这给出了以下输出:

dat[, .(cent = mean(timestalked)), by = list(from, weeknum = week(week))]


   from weeknum cent
1: A 1 0.5
2: A 2 2.0
3: A 3 1.5
4: B 1 0.5
5: B 2 1.0
6: B 3 0.5
7: C 1 1.5
8: C 2 0.5
9: C 3 0.0

将此分配给 new_dat .您可以简单地使用 new_dat[weeknum %in% 2:3] 按周划分子集或您想要的任何其他变体或 sum一年下来。此外,您还可以根据需要进行排序/排序。

希望这可以帮助!

关于r - r中的时变网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46975927/

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