### This function simulates a continuous character diffusing on a network. The character originates as a random normally distributed variable and then adopts a specified percentage of each nodes average alter value. The function assumes you have already normalized the network in some reasonable manner (Leenders 2002). ### sim.contin.on.network<-function(file.name,network,influence,Nchar,Ntaxa,Nmat) { allsims<-array(dim=c(Ntaxa,Nchar,Nmat)) net.rnorm<-network for (j in 1:Nmat) { for (i in 1:Nchar) { value.t1<-rnorm(n=Ntaxa) ave.alter<-colSums(value.t1*t(net.rnorm)) value.t2<-value.t1+(ave.alter-value.t1)*influence ##test cor(value.t2,value.t1) allsims[,i,j]<-value.t2 } } save(allsims,file=paste(file.name,"network.sims.array.continuous",sep="_")) }