varias superponer studio modificar lineas graficos graficas ejes r conditional dataframe

superponer - ¿Cómo combinar múltiples condiciones para subconjuntos de un marco de datos usando "O"?



superponer graficas en r (3)

Solo para completar, podemos usar los operadores [ y [[ :

set.seed(1) df <- data.frame(v1 = runif(10), v2 = letters[1:10])

Varias opciones

df[df[1] < 0.5 | df[2] == "g", ] df[df[[1]] < 0.5 | df[[2]] == "g", ] df[df["v1"] < 0.5 | df["v2"] == "g", ]

df $ name es equivalente a df [["nombre", exacto = FALSO]]

Usando dplyr :

library(dplyr) filter(df, v1 < 0.5 | v2 == "g")

Usando sqldf :

library(sqldf) sqldf(''SELECT * FROM df WHERE v1 < 0.5 OR v2 = "g"'')

Salida para las opciones anteriores:

v1 v2 1 0.26550866 a 2 0.37212390 b 3 0.20168193 e 4 0.94467527 g 5 0.06178627 j

Tengo un data.frame en R. Quiero probar dos condiciones diferentes en dos columnas diferentes, pero quiero que estas condiciones sean inclusivas. Por lo tanto, me gustaría usar "O" para combinar las condiciones. He utilizado la siguiente sintaxis con mucho éxito cuando quería usar la condición "Y".

my.data.frame <- data[(data$V1 > 2) & (data$V2 < 4), ]

Pero no sé cómo usar un ''OR'' en lo anterior.



my.data.frame <- subset(data , V1 > 2 | V2 < 4)

Una solución alternativa que imita el comportamiento de esta función y sería más apropiada para la inclusión dentro de un cuerpo de función:

new.data <- data[ which( data$V1 > 2 | data$V2 < 4) , ]

Algunas personas critican el uso del which no es necesario, pero evita que los valores de NA arrojen resultados no deseados. El equivalente (es decir, no devuelve filas NA para cualquier NA en V1 o V2) a las dos opciones demostradas anteriormente sin el which sería:

new.data <- data[ !is.na(data$V1 | data$V2) & ( data$V1 > 2 | data$V2 < 4) , ]

Nota: Quiero agradecer al colaborador anónimo que intentó corregir el error en el código inmediatamente anterior, una solución que fue rechazada por los moderadores. Hubo un error adicional que noté cuando estaba corrigiendo el primero. La cláusula condicional que verifica los valores de NA debe ser la primera si se va a manejar como yo quería, ya que ...

> NA & 1 [1] NA > 0 & NA [1] FALSE

El orden de los argumentos puede importar al usar ''& ".