如何在ggtitle中使用rmarkdown内联代码

时间:2016-05-21 14:35:37

标签: r ggplot2 rstudio r-markdown

我正在尝试使用内联代码将样本大小显示在我的绘图标题中,这样我就可以避免每次使用此代码块时忘记更新(N = 128)的错误。目前R无法识别我在代码的最后一行中尝试使用的内联代码“(N = r nrow(df))”。

library(Rmisc) # for summarySE function

# create descriptive stats for bar plot
    df <- subset(mtcars, select = c(mpg, cyl))
    dfc <- summarySE(df, measurevar = "mpg", groupvars = c("cyl"))

# bar plot
ggplot(dfc, aes(x=cyl, y=mpg)) + # insert variables
      geom_bar(aes(fill=cyl), # essential for bar coloring
               position=position_dodge(),
               stat="identity", colour="black", size=0) + 
      geom_errorbar(aes(ymin= mpg - se, ymax= mpg + se), 
                    size=.4, width=.1, position=position_dodge(.9)) + 
      ggtitle("(N = `r nrow(df)`)")  ### THIS IS THE LINE I WANT TO WORK ###

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以通过paste功能执行此操作,如下所示:

n_value <- paste("( N = ", nrow(dat), ")")
ggtitle(paste0(n_value))

答案 1 :(得分:0)

以下内容将会执行此操作+在您进入数千+的情况下为您提供逗号格式化的数字。

sprintf("( N = %s )", scales::comma(nrow(dat)))

sprintf("( N = %s )", scales::comma(nrow(ggplot2movies::movies)))
## [1] "( N = 58,788 )"