# (c) Karol Bonenberg - All rights reserved # Dane wejsciowe - musi byc "tabela" z trzema kolumnami : Id, degree i Modularity.Class z programu Gephi tmp = 0 # Tworzenie kolumny z posortowanymi modulami for(i in 1:nrow(tabela)) { if(nrow(merge(tmp,tabela[i,][3],1,1))==0) { tmp = rbind (tmp,tabela[i,][3]) } } tmp$Modularity.Class = sort(tmp$Modularity.Class) # Wypelnianie pustymi kolumnami for(i in 1:30) { tmp = cbind(tmp,-1) } # Zamienianie pustych pol stopniami wierzcholkow przyporzadkowanych do modulow for(j in 1:nrow(tmp)) { for(i in 1:nrow(tabela)) { if(tmp[j,][,1]==tabela[i,][,3]) { for(k in 1:length(tmp[j,])) { if(tmp[j,][,k]==-1) { tmp[j,][,k]=tabela[i,][,2] break } } } } } total = 0 for(k in 1:nrow(tmp)) { for(l in 1:length(tmp[k,])) { if(tmp[k,][,l]>=0) { total = total + 1 } } total = total - 1 } # Obliczenie stosunku proby do populacji generalnej dla poszczegolnych modulow population=0 estimation=350000 for(k in 1:nrow(tmp)) { percent = 0 for(l in 1:length(tmp[k,])) { if(tmp[k,][,l]>=0) { percent = percent + 1 } } percent = percent - 1 population = rbind(population,(percent/total)*estimation) } population <- population[c(-1),] cat(paste(population), file='population.txt', append=F, fill=T) str.mu.est <- function(N.vec,y,details="no") { # N.vec to wektor rozmiarow warstw # y to lista obiektow zawierajacych probki z warstw N.ttl <- sum(N.vec) n.vec <- unlist(lapply(y,length)) fpc <- (N.vec-n.vec)/N.vec ybar <- unlist(lapply(y,mean)) yvar <- unlist(lapply(y,var)) mu.hat <- sum(N.vec*ybar)/N.ttl var.mu <- sum(N.vec^2*fpc*yvar/n.vec)/(N.ttl^2) conf.int <- 2*sqrt(var.mu) if(details=="no") { cbind(mu.hat,var.mu,conf.int) } else{ cbind(mu.hat,var.mu,conf.int,n.vec,ybar,yvar) } } line=0 tmp$Modularity.Class <- NULL lista <-list() for(m in 1:nrow(tmp)) { line=0 for(n in 1:length(tmp[m,])) { if(tmp[m,][,n]>=0) { line=append(line,tmp[m,][,n]) } } lista = append(lista,list(line)) } wynik = str.mu.est(N.vec=population,y=lista, details="yes") wynik wynik = str.mu.est(N.vec=population,y=lista, details="no") wynik for(k in 1:nrow(tmp)) { for(l in 1:length(tmp[k,])) { if(tmp[k,][,l]==-1) { tmp[k,][,l]="" } } } cat(paste(tmp), file='tmp.txt', append=F, fill=T)