如何格式化grid.table中的数字和单元格?

时间:2014-02-19 20:10:37

标签: r ggplot2

我在格式化表格时遇到了很多问题。

我希望在此表中有多种不同的格式。

鉴于数据框:

obs=c(1,2,3,4)
n=c(30, 40, 1000, 33333)
s=c(0.11111, 0.44444, 0.55555, 0.8888)
m=c(222.222, 4444.5555, 5565.223, 323423.09808)

df = data.frame(obs,n,s,m)

Tdf  = setNames(data.frame(t(df [,-1])), df [,1])

grid.table(Tdf)

我想让列有不同的颜色。

即。蓝色,棕色,蓝色,棕色

第n行有逗号格式,例如:30,40,1,000,33,333。

行s在小数点后只有两个位置:0.11,0.44,0.56,0.89

行m只有十进制后的两个位置,逗号格式加上蓝色:222.22,4,444.56,5,565.22,323,423.10

此外,是否可以格式化不同的单个单元格?

我可能会像这样放一张桌子。

2 个答案:

答案 0 :(得分:2)

试试这个:

obs=c(1,2,3,4)
n=c(30, 40, 1000, 33333)
s=c(0.11111, 0.44444, 0.55555, 0.8888)
m=c(222.222, 4444.5555, 5565.223, 323423.09808)

df = data.frame(obs,n,s,m)

Tdf  = setNames(data.frame(t(df [,-1])), df [,1])

# transpose for formatting
x <- t(Tdf)
mode(x) <- 'character'
x[, 'n'] <- formatC(as.numeric(x[, 'n'])
    , big.mark = ','
    , digits = 0
    , format = 'f'
    )
x[, 's'] <- formatC(as.numeric(x[, 's'])
    , digits = 2
    )
x[, 'm'] <- formatC(as.numeric(x[, 'm'])
    , digits = 2
    , big.mark = ','
    , format = 'f')

require (gridExtra)
grid.table(t(x))

答案 1 :(得分:0)

您可以尝试:

1.-全部在一起

tabla1<-data.frame(x=c("a","b","c","d"), y=c(1000,1200.3,245332.3,2212))
grid.newpage()
grid.table(format(tabla1, decimal.mark = ",", big.mark = "."))

2.-按列

grid.newpage()
tabla1<-data.frame(x=c(0.1234,0.23456,0.34567,0.45678), y=c(1000,1200.3,245332.3,2212))
tabla1$x<-format(tabla1$x, digits = 2, decimal.mark = "_")
tabla1$y<-format(tabla1$y, big.mark = ".", decimal.mark = ",")
grid.table(tabla1)