我创建了一个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
有谁知道如何实现这个目标?
由于
答案 0 :(得分: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))
上面的代码生成以下对象。它看起来并不像你的那样,但它在你正在寻找的一般结构中: