У меня есть код, который генерирует случайное пространственное распределение точек, возвращает столбец расстояния между каждой точкой и зараженным человеком и использует функцию для расчета вероятности заражения на следующем шаге по времени. Всего существует 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]))
}