varias vacio programacion leyendas graficos graficas funciones estadistica español ejemplos crear r vector

vacio - plot en r



¿Cómo saber qué hay en un vector y no en otro? (5)

En matlab hay una manera de encontrar los valores en un vector pero no en el otro.

por ejemplo:

x <- c(1,2,3,4) y <- c(2,3,4)

¿Hay alguna función que me diga que el valor en x que no está en y es 1?


El archivo de ayuda en R para setdiff, union, intersect, setequal y is.element proporciona información sobre las funciones de conjunto estándar en R.

setdiff(x, y) devuelve los elementos de x que no están en y .

Como se señaló anteriormente, es una diferencia asimétrica. Así por ejemplo:

> x <- c(1,2,3,4) > y <- c(2,3,4,5) > > setdiff(x, y) [1] 1 > setdiff(y, x) [1] 5 > union(setdiff(x, y), setdiff(y, x)) [1] 1 5


Sí. Para los vectores, simplemente puede usar la función %in% o is.element() .

> x[!(x %in% y)] 1

Para una matriz, hay muchos enfoques de diferencia. merge() es probablemente el más directo. Sugiero mirar esta pregunta para ese escenario .


puede usar la función setdiff () (establecer diferencia):

> setdiff(x, y) [1] 1


setdiff() es una función complicada porque la salida depende del orden de la entrada. En su lugar, puede escribir una función simple como tal que hace exactamente lo contrario de intersect . Esto es mucho mejor

>difference <- function(x, y) { c(setdiff(x, y), setdiff(y, x)) } #Now lets test it. >x <- c(1,2,3,4) >y <- c(2,3,4,5) >difference(x,y) [1] 1 5


x[is.na(match(x,y))]