Можно ли включить NA для одного пропущенного значения, и могу ли я проверить, что каждый человек соответствует моей указанной функции - PullRequest
0 голосов
/ 20 февраля 2020

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

1 Ответ

1 голос
/ 20 февраля 2020

Очевидный шаг:

замените: distance_from_infected <- distances[-(position_infected_individual), position_infected_individual]

на:

distance_from_infected <- c(NA, distances[-(position_infected_individual), position_infected_individual])

Но вы настраиваете себя на довольно много неудач.

  1. Предполагается, что только один зараженный случай
  2. То, что DF всегда можно соответствующим образом отсортировать так, чтобы зараженный человек был первым
  3. Что NA имеет "смысл" для этого вида цифры c резюме
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...