Rの出力用テーブルの書式設定方法を学習しようとしています。今ではテーブルをexampleにして列の数値を書式設定しようとしています。いくつかの列には2桁、ランク列のようないくつかの列はありません。また、行の名前をYear Monthとして保持したいと思います。このようなテーブルを作成するにはどうすればいいですか?テーブルの列で数値を書式設定する方法(tableGrob)
注:「sepal.with」列の「3」も「3.0」ではなく「3」として表示されます。
library(gtable)
library(grid)
library(gridExtra)
library(zoo)
iris <- as.matrix(iris[1:4, 1:3])
rownames(iris)<-as.yearmon(seq(as.Date("2000/1/1"), as.Date("2000/4/1"), by = "month"))
RankColumn<-seq(1, 4, by = 1)
iris<-cbind(iris, RankColumn)
iris<- round(as.matrix(iris), digits=2)
# a simple function to scale each column to the range [0, 1]
norm <- function(x) {
apply(x, 2, function(y){(y-min(y))/(max(y)-min(y))})
}
bluecol <- colorRamp(c("#3366EE", "#AABBFF", "#DDDDFF"))(norm(iris))
bluecol <- rgb(bluecol[, 1], bluecol[, 2], bluecol[, 3], max=255)
tt <- ttheme_default(core=list(bg_params=list(fill=bluecol)))
g <- tableGrob(iris, theme=tt)
g <- gtable_add_grob(g,
grobs = rectGrob(gp = gpar(fill = NA, lwd = 2)),
t = 2, b = nrow(g), l = 1, r = ncol(g))
g <- gtable_add_grob(g,
grobs = rectGrob(gp = gpar(fill = NA, lwd = 2)),
t = 1, l = 1, r = ncol(g))
grid.draw(g)
私はマッチさせるために "apply(iris [、-4]、2、zeropad)"という行を変更しなければならないと信じています。(zeropad、iris [、-4]、2) – user2946746
@ user2946746: 2つのゼロを埋めたい場合、 'apply(iris [、-4]、2、zeropad、2)'、 'mapply(zeropad、iris [、-4]、2)'または 'sapply(iris [、-4]、ゼロパック、2) '。彼らはすべて同じ結果を与えるでしょう。配列や行列には 'apply'を使い、オブジェクトのようなリスト(データフレーム)には' * apply'(inc。 'mapply'と' sapply')を使う傾向があります。 – AkselA
ありがとうございました。私は、それぞれの列を別々にフォーマットしようとしました。 iris [、c(1)] < - mapply(ゼロパッド、アイリス[、c(1)]、0)。私は列の色分けによって列を失う。どんな考え? – user2946746