使用空数据框绘制瀑布图时出错

时间:2018-04-01 11:28:56

标签: r ggplot2

我有一张处于工作状态的瀑布图。但是,当数据帧为空时,它会返回错误。当没有指定条件的数据时,数据帧可以为空。

下面是我用来绘制瀑布图的代码。而不是错误我想打印“指定的报告没有数据”

#dataset <- data.frame(TotalHeadcount = c(-417, -12, 276, -276, 787, 14), Category =  LETTERS[1:6])
dataset <- data.frame(TotalHeadcount = NA, Category =  NA)[numeric(0), ]
dataset
dataset$SortedCategory <- factor(dataset$`Category`, levels = dataset$`Category`)
dataset$id <- seq_along(dataset$TotalHeadcount)
dataset$type <- ifelse(dataset$TotalHeadcount > 0, "in",   "out")
dataset[dataset$SortedCategory %in% c("A", "F"), "type"] <- "net"
dataset$type <- factor(dataset$type, levels = c("out", "in", "net"))
dataset$end <- cumsum(dataset$`TotalHeadcount`)
dataset$end <- c(head(dataset$end, -1), 0)
dataset$start <- c(0, head(dataset$end, -1))
dataset$value <-dataset$`TotalHeadcount`
library(ggplot2)
strwr <- function(str) gsub(" ", "\n", str)
ggplot(dataset, aes(fill = type))+ geom_rect(aes(x = SortedCategory,  xmin = id - 0.45, xmax = id + 0.45, ymin = end,   ymax = start))+ scale_x_discrete("", breaks = levels(dataset$SortedCategory), labels = strwr(levels(dataset$SortedCategory)))+ theme_bw()+ theme(panel.border = element_blank(), panel.grid.major = element_blank(), axis.line = element_line(colour = "gray"))+guides(fill=FALSE)

在这里,我评论了实际的数据帧数据。而不是我添加了一个空的数据帧,这个代码给出了错误。

任何帮助都会非常感激。

此致 阿卡什

1 个答案:

答案 0 :(得分:1)

您想在哪里显示错误消息?这有用吗?

if(nrow(dataset) == 0) {
  print("The specified report does not have data")
} else {
  ggplot(dataset, ...
}