Chcę umieścić warunek zatrzymania wewnątrz funkcji. Warunkiem jest, aby pierwszy i drugi element pasowały idealnie w kolejności i długości.Porównywanie dwóch wektorów w instrukcji if
A <- c("A", "B", "C", "D")
B <- A
C <- c("A", "C", "C", "E")
> A == B
[1] TRUE TRUE TRUE TRUE
To dobra sytuacja, aby przejść do przodu
> A == C
[1] TRUE FALSE TRUE FALSE
Ponieważ istnieje jeden fałszywy ten warunek, aby zatrzymać i wyjście, że warunek doesnot trzymać w kolumnie 2 i 4-tego.
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
Czy brakuje mi czegoś oczywistego? Mogę też wyprowadzać tam, gdzie są pozycje błędów?
Twoja uwaga dotycząca recyklingu jest taka, dlaczego powinieneś używać' isTRUE (all.equal (D, E)). –
Patrząc na kod 'all.equal.character' był dla mnie pouczający. Ze względu na aspekt "prawie równości" dla pływających założyłem, że robił coś zabawnego również na inne rzeczy. Nie jestem pewien co z perspektywy czasu. Ale jedyną niechcianą rzeczą, którą robi, jest sprawdzanie równości wszystkich atrybutów, w tym nazw. Troszczy się też bardziej o "NA" niż mój prosty kod powyżej. – Aaron