1

我创建了一个grid.table对象来在 PowerBi 中显示数据框,下面是我的代码:

dataset <- data.frame(BDS_ID = c("001","002"),
                  PRIORITY = c("high","medium"),
                  STATUS = c("onair","onair"),
                  COMPANY = c("airfr","fly"))
my.result <- melt(dataset, id = c("BDS_ID"))

mytheme <- ttheme_default(base_size = 10,
                          core=list(fg_params=list(hjust=0, x=0.01),
                                    bg_params=list(fill=c("white", "grey90"))))

for (i in 1:nrow(tg)) {
  tg$grobs[[i]] <- editGrob(tg$grobs[[i]], gp=gpar(fontface="bold"))
}

grid.draw(tg)

这是我的输出:

在此处输入图像描述

我想通过以下方式改进我的输出:我希望行标题是唯一的,并且对于每个变量的每个不同值都有一个不同的列,每次使用行标题重复该列。

我尝试使用语句来执行此操作t(dataset),但我没有得到所需的结果,因为行标题没有重复。

我想得到一个grob类似于这样的输出(总是优雅的):

**PRIORITY**  high   **PRIORITY**  medium
**STATUS**    onair  **STATUS**    onair
**COMPANY**   airfr  **COMPANY**   fly

有谁知道如何实现这一目标?

谢谢

4

1 回答 1

1

我无法根据您提供的代码重现您显示的 grob 格式,但我有类似的东西:

dataset <- data.frame(BDS_ID = c("001","002"),
                  PRIORITY = c("high","medium"),
                  STATUS = c("onair","onair"),
                  COMPANY = c("airfr","fly"))
dataset <- data.frame(t(dataset))
dataset$label1 <- rownames(dataset)
dataset$label2 <- rownames(dataset)
colnames(dataset) <- c("status1", "status2", "label1", "label2")
dataset <- dataset[c(2:nrow(dataset)), c(3, 1, 4, 2)]
rownames(dataset) <- NULL

test <- grid.draw(tableGrob(dataset))

上面的代码产生以下对象。它看起来不像你的,但它在你正在寻找的一般结构中:

输出格罗布

于 2018-01-17T21:14:06.250 回答