【发布时间】:2019-02-14 19:12:03
【问题描述】:
我有一个很大的偏好矩阵 P,其中包含 100 多行患者和 100 多列肾脏偏好。我必须以某种方式将这些肾脏分配给患者。在我找到第一个分配子集后,我想 1. 从要考虑的患者中删除患者,以及 2. 替换偏好矩阵中已分配给 NA 的肾脏。我多次循环这个过程。我知道该怎么做 1. 但是当我尝试做 2. 时,我想要更改为 NA 的数字中只有少数实际上会发生变化。
完成循环后,我将得到一个肾脏向量,分配如下:
taken= c(94, 42, 72, 12, 45, 68, 10, 100, 98)
然后我尝试使用以下方法将偏好矩阵 P 中的这些数字替换为 NA:
P[P==taken]=NA
但我仍然看到我尝试在矩阵中替换的一些值。有什么建议吗?
【问题讨论】:
-
P[P %in% taken] = NA?==只能与一个值进行比较,而不是值的向量。%in%将在整个向量taken中查找值。 -
我已经尝试过了,但不幸的是,这也将所有原始值留在了矩阵中。
-
你可以遍历“taken”然后你的代码应该可以工作了。
-
那行得通@JacobJacox。谢谢!