我有两个向量p1,p2他们报告相同的信息,除了p2更精确。所以我想选择比较2并从p2中选择值,除非2个向量之间的差异是> ķ。在这种情况下,我希望在最终产品中选择p1的值" pd"。
k <- 5
p1 <- c(21,43,62,88,119,156,264)
p2 <- c(19,42,62,84,104,156,262)
pd应如下所示:
pd <- c(19,42,62,84,119,156,262)
我见过在方括号内指定选择条件的代码,但无法弄清楚如何复制它。类似于pd&lt; -p2 [p1,p1-p2&gt; 5]的东西,但不完全是因为这显然没有评估。 p2 [p1-p2&lt; 5]用于选择阳性病例,但跳过条件评估为FALSE的第5种情况。
答案 0 :(得分:1)
可能是
ifelse(abs(p2-p1) <=k, p2, p1)
#[1] 19 42 62 84 119 156 262
或者不使用ifelse
indx <- abs(p1-p2) >k
pd <- p2
pd[indx] <- p1[indx]
pd
#[1] 19 42 62 84 119 156 262