誰が誰に結びついているかを説明するエッジリスト (無向) であるデータ フレームと、それらのアクターの民族性を含むデータ フレームがあります。各エゴの名前を 1 つの列にリストし、別の列に特定のタイプの民族の変更点の合計をリストするデータ フレームを取得したいと考えています (例: ジョーと彼の白人の友人の数)。これが私が試したことです:
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
これに関する問題は、一部の自我がactorB列にのみ表示される場合、分割機能を使用しても機能しないことです.
エゴの ID によって変更者のリストを取得するためのより適切な方法を誰かが推奨できますか?それは分割機能ではありませんか?