varias superponer studio modificar lineas graficos graficas ejes r na

studio - superponer graficas en r



Establecer<NA> en blanco (2)

Tengo un marco de datos con una fila de NA:

df = data.frame(c("classA", NA, "classB"), t(data.frame(rep("A", 5), rep(NA, 5), rep("B", 5)))) rownames(df) <- c(1,2,3) colnames(df) <- c("class", paste("Year", 1:5, sep = "")) > df class Year1 Year2 Year3 Year4 Year5 1 classA A A A A A 2 <NA> <NA> <NA> <NA> <NA> <NA> 3 classB B B B B B

Introduje la fila vacía (fila NA) a propósito porque quería tener algo de espacio entre la fila clase A y la fila claseB.

Ahora, me gustaría sustituir el <NA> por el espacio en blanco, para que la segunda fila se vea como una fila vacía.

Lo intenté:

df[is.na(df)] <- ""

y

df[df == "NA"] <- ""

pero no funcionó ...

¿Algunas ideas? ¡Gracias!


Esta respuesta es más de un comentario extendido.

Lo que estás tratando de hacer no es lo que yo consideraría una buena práctica. R no es, digamos, Excel, así que hacer algo como esto solo para crear una separación visual en sus datos solo le dará un dolor de cabeza más adelante en la línea.

Si realmente solo te preocupas por la salida visual, puedo ofrecerte dos sugerencias:

  1. Utilice el argumento na.print para print cuando desee ver los datos con esa separación visual.

    print(df, na.print = "") # class Year1 Year2 Year3 Year4 Year5 # 1 classA A A A A A # 2 # 3 classB B B B B B

  2. Ten en cuenta que incluso lo anterior no es la mejor sugerencia. Obtenga la separación visual y de contenido convirtiendo su data.frame en una list :

    split(df, df$class) # $classA # class Year1 Year2 Year3 Year4 Year5 # 1 classA A A A A A # # $classB # class Year1 Year2 Year3 Year4 Year5 # 3 classB B B B B B


Otra alternativa:

df <- sapply(df, as.character) # since your values are `factor` df[is.na(df)] <- 0

Si quieres espacios en blanco en lugar de ceros

> df <- sapply(df, as.character) > df[is.na(df)] <- " " > df class Year1 Year2 Year3 Year4 Year5 [1,] "classA" "A" "A" "A" "A" "A" [2,] " " " " " " " " " " " " [3,] "classB" "B" "B" "B" "B" "B"

Si desea un data.frame, solo use as.data.drame

> as.data.frame(df) class Year1 Year2 Year3 Year4 Year5 1 classA A A A A A 2 3 classB B B B B B