In Matlab gibt es eine Möglichkeit, die Werte in einem Vektor zu finden, aber nicht in einem anderen.
zum Beispiel:
x <- c(1,2,3,4)
y <- c(2,3,4)
gibt es eine Funktion, die mir sagt, dass der Wert in x
die nicht in y
ist 1?
In Matlab gibt es eine Möglichkeit, die Werte in einem Vektor zu finden, aber nicht in einem anderen.
zum Beispiel:
x <- c(1,2,3,4)
y <- c(2,3,4)
gibt es eine Funktion, die mir sagt, dass der Wert in x
die nicht in y
ist 1?
Wenn:
x <- c(1,2,3,4)
y <- c(2,3,4)
Jeder dieser Ausdrücke:
setdiff(x, y)
x[!(x %in% y)]
x[is.na(match(x,y))]
x[!(is.element(x,y))]
wird Ihnen die richtige Antwort geben [1] 1
wenn das Ziel darin besteht, die Werte/Zeichen in x
das nicht vorhanden ist in y
.
Die Anwendung der obigen Ausdrücke kann jedoch knifflig sein und zu unerwünschten Ergebnissen führen, je nach Art des Vektors und der Position von x und y im Ausdruck. Zum Beispiel, wenn:
x <- c(1,1,2,2,3,4)
y <- c(2,3,4)
und das Ziel ist einfach, die eindeutigen Werte/Zeichen in x
das nicht vorhanden ist in y
oder andersherum. Die Anwendung eines der folgenden Ausdrücke ergibt immer noch die richtige Antwort [1] 1
:
union(setdiff(x, y), setdiff(y, x))
Dank des Beitrags von Jeromy Anglim
OR:
difference <- function(x, y) {
c(setdiff(x, y), setdiff(y, x))
}
difference(y,x)
Dank des Beitrags von Arbeitshaus
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.