Ich unterteile einen Datensatz vor dem Plotten, aber der Schlüssel ist numerisch Ich kann nicht die strenge Gleichheitsprüfung von match()
oder %in%
verwenden (es fehlen einige Werte). Ich schrieb die folgende Alternative, aber ich stelle mir vor, dass dieses Problem ausreichend häufig ist, dass es irgendwo eine bessere eingebaute Alternative gibt? all.equal
scheint nicht für mehrere Testwerte ausgelegt zu sein.match() -Werte mit Toleranz
select_in <- function(x, ref, tol=1e-10){
testone <- function(value) abs(x - value) < tol
as.logical(rowSums(sapply(ref, testone)))
}
x = c(1.0, 1+1e-13, 1.01, 2, 2+1e-9, 2-1e-11)
x %in% c(1,2,3)
#[1] TRUE FALSE FALSE TRUE FALSE FALSE
select_in(x, c(1, 2, 3))
#[1] TRUE TRUE FALSE TRUE FALSE TRUE
@Frank nope :) bitte als Antwort posten – baptiste
@Frank gute Idee! –