我有一张桌子,我想使用tableGrob在ggplot2图表旁边绘图。出于输出目的,我想抑制NA被打印。
示例:
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")
答案 0 :(得分: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")