首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中变数的均值

R中变数的均值
EN

Stack Overflow用户
提问于 2018-04-19 03:25:29
回答 1查看 70关注 0票数 0

我有一个学校的网络数据集,其中我有每个受访者的抑郁水平。数据如下所示:

代码语言:javascript
运行
复制
id  depression friendid_1 friendid_2 friendid_2 friendid_3
1      1.0        7          3          6          5
2      0.6        6          4          NA         NA
3      0.0        1          4          5          7
4      1.8        9          3          8          2

我想在数据中添加一个变量,即受访者网络的平均抑郁水平(因此,对所有作为受访者存在于此数据中的变更者的抑郁水平进行平均)。

任何帮助都是最好的!

EN

回答 1

Stack Overflow用户

发布于 2018-04-19 03:40:50

对于这些类型的“连接”问题,我喜欢使用igraph包来处理数据,就像处理图形/网络一样。所以有了你的样本数据

代码语言:javascript
运行
复制
dd<-read.table(text="id  depression friendid_1 friendid_2 friendid_3 friendid_4
1      1.0        7          3          6          5
2      0.6        6          4          NA         NA
3      0.0        1          4          5          7
4      1.8        9          3          8          2", header=TRUE)

我们可以使用以下工具创建您的数据图表

代码语言:javascript
运行
复制
library(igraph)
library(dplyr) #for select
library(tidyr) #for gathter
gg <- dd %>% select(-depression) %>% 
  gather(friend, friend_id, -id) %>% 
  select(-friend) %>% 
  na.omit() %>% 
  graph_from_data_frame(, directed=FALSE) %>% #this assumes friendships are mutual
  simplify()
gg <- set_vertex_attr(gg, "depression", V(gg)[dd$id], dd$depression)
plot(gg)

然后,您可以遍历所有顶点并计算相邻顶点的平均凹陷

代码语言:javascript
运行
复制
sapply(V(gg), function(v) {
  mean(neighbors(gg, v)$depression, na.rm=TRUE)
})
#   1   2   3   4   7   6   9   5   8 
# 0.0 1.8 1.4 0.3 0.5 0.8 1.8 0.5 1.8 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49907572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档