2

I have a table that I'd like to plot alongside a ggplot2 plot using a tableGrob. For output purposes, I would like to suppress NA from being printed.

Example:

library(RGraphics) # support of the "R graphics" book, on CRAN
library(gridExtra) 

tab <- head(iris)
tab[1,2] <- NA # set a couple values to NA for example purposes
g1 <- tableGrob(tab)

#"Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"
g2 <- qplot(Sepal.Length,  Petal.Length, data=iris, colour=Species)
grid.arrange(g1, g2, ncol=1, main="The iris data")

enter image description here

4

1 に答える 1

2

プロットしているデータテーブルは要素に保存されますg1$d

 g1$d
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1          NA          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

に置き換えるだけNA""列が文字に変換され、書式が緩くなるため、最初にデータフレームの列を文字に変換し、次にNA値を置き換えてデータ構造をデータフレームに変換し直します(引用符を削除します)。

g1$d<-apply(g1$d,2,as.character)
g1$d[is.na(g1$d)]<-""
g1$d<-as.data.frame(g1$d)
g1$d
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1                      1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

grid.arrange(g1, g2, ncol=1, main="The iris data")

ここに画像の説明を入力してください

于 2013-02-26T19:32:47.100 に答える