我試圖找到一個更快的方式來總結個人在會話中的發生,以便計算他們的關係水平。基本上,我想爲每兩個人計算至少有一次觀察到的次數。我已經在這裏查看了答案,包括融合和慷慨,但沒有找到使用它們的好方法。這是我的低效代碼:R創建矩陣的發生
presence=array(0,c(8,10)) # session by individual
counter=array(0,c(10,10))
# put some data into the array:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0 1 0 0 0 0 0 0 0 0
[2,] 0 0 1 1 1 1 0 0 0 0
[3,] 0 0 0 0 0 0 1 0 0 0
[4,] 0 0 0 0 0 0 0 1 0 0
[5,] 0 0 0 0 0 0 0 1 0 0
[6,] 0 0 0 0 0 0 0 0 1 0
[7,] 0 0 0 0 0 0 0 0 1 0
[8,] 0 0 1 0 1 1 0 0 0 1
for (a in 1:10){
for (b in 1:10){
for (c in 1:8) {
if ((presence[c,a]>0)|(presence[c,b]>0)) counter[a,b]=counter[a,b]+1
# calculate something using this counter for each two individuals a and b
}
}
}
謝謝你的幫助。 Amiyaal
我認爲你需要解釋你問題多一點,我不知道這裏發生了什麼。你的原始數據是什麼樣的?這代碼在哪裏代表?如果你想從原始數據中計算事件中的同時發生的人,那麼這當然是可能的,我會建議看看一些igraph社交網絡分析庫。 – slammaster 2013-03-04 20:54:23
你的問題如上所述沒有任何意義。您使用該聲明,「在多年的會話中對個人的會話進行總結」而不定義任何條款,並且您提供的代碼是垃圾。 – N8TRO 2013-03-04 20:59:21
在場數組存儲哪些人在第i年的會話c中出現。內循環計算一年中至少有一人(a或b)出現的次數(即總計所有會話)。我希望現在更清楚。 – user2133354 2013-03-04 21:01:27