Я пытаюсь найти более быстрый способ суммировать появление отдельных лиц в сеансах, чтобы рассчитать их уровень отношений. В принципе, я хотел бы подсчитать для каждых двух людей, сколько раз наблюдалось хотя бы одно из них. Я изучил ответы здесь, включая расплав и acast, но не нашел хорошего способа их использования. Это мой неэффективный код: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
Ваш вопрос не имеет смысла, как указано. Вы используете заявление, «суммируйте количество людей в сессиях в течение многих лет», не определяя никаких условий, а код, который вы предоставили, - это мусор. – N8TRO
в массиве присутствия хранятся отдельные лица, присутствующие в сеансе c в году i. Внутренняя петля подсчитывает количество раз, когда по крайней мере один из них (a или b) присутствовал в течение года (т. Е. Суммируя все сеансы). Надеюсь, теперь станет ясно. – user2133354