Quiero poner la condición de detención dentro de una función. La condición es que si los elementos primero y segundo deben coincidir perfectamente en orden y longitud.Comparando dos vectores en una declaración if
A <- c("A", "B", "C", "D")
B <- A
C <- c("A", "C", "C", "E")
> A == B
[1] TRUE TRUE TRUE TRUE
Esta es una buena situación para seguir adelante
> A == C
[1] TRUE FALSE TRUE FALSE
Dado que hay una falsa esta condición para parar y salida que la condición doesnot retención en la columna 2 y 4º.
if (A != B) {
stop("error the A and B does not match at column 2 and 4"} else {
cat ("I am fine")
}
Warning message:
In if (A != B) (stop("error 1")) :
the condition has length > 1 and only the first element will be used
¿Falta algo obvio? También puedo dar salida donde están las posiciones de error?
Su precaución sobre el reciclaje es la razón por la que debe usar' isTRUE (all.equal (D, E)) '. –
Ver el código para 'all.equal.character' fue esclarecedor para mí. Debido al aspecto de "casi igualdad" para las carrozas, asumí que también hizo algo divertido por otras cosas. No estoy seguro de qué, en retrospectiva. Pero la única cosa no deseada que hace es verificar la igualdad de todos los atributos, incluidos los nombres. También tiene más cuidado con 'NA' que mi código simple anterior. – Aaron