我这里有生成点的随机空间分布的代码,返回每个点与受感染个体之间的距离列,并使用函数来计算下一时间步的感染概率。有60个主机,其中之一已被感染。我想用原始坐标将Pi的值(计算感染概率)绑定到我的数据框。显然,从距离矩阵中删除了一个点,即被感染的个体。我想将此代码替换为主数据帧中的NA作为代码中的下一步,并且还要确认坐标是否与函数Pi的输出相对应。
因此,我试图将59行的列附加到60行的主数据框中。
# Create a spatial distribution with infected individuals
xcoord <- sample(1:100,60)
ycoord <- sample(1:100,60)
infectionstatus <- rep(0,60)
Df <- data.frame(xcoord, ycoord, infectionstatus)
a <- sample(1:60, 1)
Df$infectionstatus[a] <- 1
# Calculate distance between infected individuals and susceptibles
library(rdist)
distances <- pdist(Df[,1:2], metric = "euclidean")
position_infected_individual <- which(Df[,3]==1)
distance_from_infected <- distances[-(position_infected_individual), position_infected_individual]
#Assign parameter values and calculate probability of infection
beta<-100
alpha<-0.1
Pi<-vector()
for (p in 1:length(distance_from_infected)){
Pi[p] = 1-exp(-beta*exp(-alpha*distance_from_infected[p]))
}
最明显的步骤是: