【问题标题】:Is it possible to include NA for one missing value, and can I verify that each individual corresponds with my specified function是否可以为一个缺失值包含 NA,我可以验证每个人是否与我指定的函数相对应
【发布时间】:2020-02-20 16:13:32
【问题描述】:

我这里的代码生成点的随机空间分布,返回每个点与受感染个体之间的距离列,并使用函数计算下一个时间步的感染概率。有 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]))
}

【问题讨论】:

  • 您的问题是什么?标题是否与您要解决的问题有关?实际上,说从感染者到自己的“距离”消失了是没有意义的。它是 0。我确信距离函数应该确认这一点。但它们已从风险集中移除。关键是您需要在距离矩阵(实际上是向量)为 1-1 的每个时间点内创建风险个体的子集。我们在时间到事件结果的 Cox 模型中做类似的事情。
  • 您好,感谢您的回复。我的问题是如何将 NA 值添加到 Pi 向量中,仅添加到受感染者所在的位置。我明白了,我还没有听说过事件发生时间结果的 Cox 模型,听起来很有趣,你的意思是感染概率与高危个体坐标之间的 1-1 吗?这就是我想要做的,但是,也许我应该更多地考虑距离矢量,谢谢你的纠正我对 R 比较陌生。希望有所帮助!
  • 为什么要从远处删除position_infected_individual?
  • 我删除了position_infected_individual,因为a。我不想包括到自身和 b 的距离。该人已经被感染,因此不包括在我的等式中,该等式说明了一个人被感染的可能性。

标签: r dataframe na


【解决方案1】:

明显的步骤是:

替换: distance_from_infected &lt;- distances[-(position_infected_individual), position_infected_individual]

与:

distance_from_infected &lt;- c(NA, distances[-(position_infected_individual), position_infected_individual])

但你让自己面临不少失败。

  1. 假设只有一个感染病例
  2. DF 始终可以适当排序,因此感染者优先
  3. NA 对这种数字摘要“有意义”

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2022-11-21
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多