使用 R Markdown
R 插件为 PyCharm 提供了处理 R Markdown 文件的便捷功能。 通过交互式编辑器,您可以快速添加可执行的 R 代码块,运行并调试它们,并生成 HTML 输出。
该插件支持不同的 markdown 内容:文档、笔记本、演示文稿和 Shiny(交互式 markdown)。
当您 创建一个新的 *.rmd 文件时,您可以选择文件类型:

每个文件都会根据其类型创建一个特定的头部:
此头部用于在 HTML 文件中渲染输出。 要修改默认头部,请在项目 设置 中 编辑 R Markdown 模板。
在 R Markdown 文件中,您可以根据 Markdown 语法添加任何内容以及一些可执行的代码块。
添加代码块
要向 R Markdown 文件添加新的 R 代码块,请将插入点放在任意行或代码块处,然后单击
或按 Ctrl+Alt+Insert。

以下结构将被添加到选定行或代码块的下方:
```{r} ```在代码块中输入任意 R 代码。
在向代码块添加 R 代码时,使用 编码辅助功能,例如代码补全、代码检查和快速修复。

一旦添加了代码,执行操作就可以通过 运行 菜单在边距和代码块工具栏中使用。

项目 | 描述 |
|---|---|
执行当前代码块。 | |
调试当前代码块。 | |
| 执行当前代码块上方的所有代码块。 |
| 执行当前代码块下方的所有代码块。 |
执行代码块
要执行插入点处的代码块,请单击
并选择 运行代码块 ,或单击代码块工具栏上的
。
在一次执行一个代码块时,请注意代码依赖。 例如,代码片段中的第二个代码块使用了第一个代码块中定义的变量。

单击
以执行当前选定代码块上方的所有代码块,确保所有所需变量已初始化。您可以随时单击
以执行文件中剩余的所有代码块,或者通过单击 选择一次性执行所有代码块。
预览并评估呈现在代码块下方的执行结果。

您还可以切换到 R 控制台以详细研究变量。

如有需要,单击
以清除执行结果。
您可以调试 R Markdown 文件中的可执行代码块,以检测并修复其中的任何错误。
调试代码块
您可以创建一个包含 R Markdown 源代码及其执行结果的 HTML 文件。
生成 HTML 输出
单击 R Markdown 工具栏上的
。PyCharm 会创建一个与 .rmd 文件同名的 HTML 文件。 R Markdown 控制台会报告任务完成情况。

默认情况下,所有输出文件都存储在项目根目录中。 如有需要,从 R Markdown 工具栏的输出目录列表中选择 自定义 ,并指定输出文件的替代位置。
单击
以在浏览器中打开输出文件。

您可以以演示文稿的形式呈现 R Markdown 内容。
构建演示文稿
创建一个新的 *.rmd 文件,并在指定其类型时选择 呈现。
使用
##标题标记每个新幻灯片。 以下代码示例创建了三个内容幻灯片:## Bar plot ```{r} mycars <- within(mtcars, {cyl <- ordered(cyl)}) ``` ```{r} cyls <- table(mycars$cyl) barplot(cyls, main="Car cylinder distribution", col = "#d4724e") ``` ## Pie ```{r} slices <- c(10, 12,4, 16, 10) lbls <- c("US", "UK", "Australia", "Germany", "France") mytable <- (slices) pie(slices, labels = lbls, main="Pie Chart of Countries") ``` ## Dot plot ```{r} dotchart(mtcars$drat,labels=row.names(mtcars),cex=.7, main="Rear axle ratio") ```单击
以在浏览器中打开生成的演示文稿。

您还可以通过使用 Shiny构建带有交互式内容的 R Markdown。
使用 Shiny 创建交互式小部件
创建一个新的 *.rmd 文件,并在指定其类型时选择 Shiny。
编辑模板文件中的代码块,或单击
以创建一个新的代码块。
添加您的 Shiny 代码,例如,来自 Shiny Gallery的一个示例:
```{r echo = FALSE} # Define UI for app that draws a histogram ---- ui <- fluidPage( # App title ---- titlePanel("Hello Shiny!"), # Sidebar layout with input and output definitions ---- sidebarLayout( # Sidebar panel for inputs ---- sidebarPanel( # Input: Slider for the number of bins ---- sliderInput(inputId = "bins", label = "Number of bins:", min = 1, max = 50, value = 30) ), # Main panel for displaying outputs ---- mainPanel( # Output: Histogram ---- plotOutput(outputId = "distPlot") ) ) ) # Define server logic required to draw a histogram ---- server <- function(input, output) { # Histogram of the Old Faithful Geyser Data ---- # with requested number of bins # This expression that generates a histogram is wrapped in a call # to renderPlot to indicate that: # # 1. It is "reactive" and therefore should be automatically # re-executed when inputs (input$bins) change # 2. Its output type is a plot output$distPlot <- renderPlot({ x <- faithful$waiting bins <- seq(min(x), max(x), length.out = input$bins + 1) hist(x, breaks = bins, col = "#75AADB", border = "white", xlab = "Waiting time to next eruption (in mins)", main = "Histogram of waiting times") }) } shinyApp(ui, server) ```如果某行代码被高亮显示,将鼠标悬停在其上:可能是您尚未安装
shiny包。 按 Alt+Enter 并安装缺失的包。单击
以生成输出。

