R中的SNA:Get alters';来自自我的属性';身份证
我有一个数据框架,是一个边缘主义者(无方向的)描述谁与谁联系在一起,然后是一个数据框架,这些参与者的种族。我想得到一个数据框,在一列中列出每个自我的名字,在另一列中列出他们对给定种族类型的改变的总和(比如乔和他的白人朋友的数量)。以下是我尝试过的:R中的SNA:Get alters';来自自我的属性';身份证,r,sna,R,Sna,我有一个数据框架,是一个边缘主义者(无方向的)描述谁与谁联系在一起,然后是一个数据框架,这些参与者的种族。我想得到一个数据框,在一列中列出每个自我的名字,在另一列中列出他们对给定种族类型的改变的总和(比如乔和他的白人朋友的数量)。以下是我尝试过的: atts <- data.frame(Actor = letters[1:10], Ethnicity = sample(1:3, 10, replace=T)) # sample ethnicity data df <- data.fr
atts <- data.frame(Actor = letters[1:10], Ethnicity = sample(1:3, 10, replace=T)) # sample ethnicity data
df <- data.frame(actorA = letters[1:10],actorB=c("h","d","f","i","g","b","a","a","e","h")) # sample edgelist
df.split<-split(df$actorB,df$actorA) # obtain list of alters for column 1
head(df.split)
friends <- c()
n<-length(df.split)
for (i in 1:n){
alters_e <-atts[atts$Actor %in% df.split[[i]]==TRUE,] # get ethnicity for alters
friends[i] <- sum(alters_e$Ethnicity==3) # compute no. ties for one ethnicity value
}
friends
atts我希望这有助于:
(atts <- data.frame(Actor = letters[1:10], Ethnicity = sample(1:3, 10, replace=T)))
(df <- data.frame(alter = letters[1:10],ego=c("h","d","f","i","g","b","a","a","e","h")))
(Merged <- merge (df, atts, by.x="alter", by.y="Actor"))
with(Merged, table(ego,Ethnicity))
(atts我希望这有助于:
(atts <- data.frame(Actor = letters[1:10], Ethnicity = sample(1:3, 10, replace=T)))
(df <- data.frame(alter = letters[1:10],ego=c("h","d","f","i","g","b","a","a","e","h")))
(Merged <- merge (df, atts, by.x="alter", by.y="Actor"))
with(Merged, table(ego,Ethnicity))
(请注意操作:请不要弄乱编辑给你的问题抱歉-不知道你的意思?我不想搞砸任何人的编辑!你坚持要添加“>”明白了。我的错。这是新的。谢谢。对于OP:请不要弄乱编辑给你的问题抱歉-不知道你的意思?我不想搞砸任何人的编辑!你坚持要添加“>”。明白了。我的错。这是新的。谢谢。