小编Mar*_*eal的帖子

我们可以在 rmarkdown 的 html 输出中将标题保留在 plotly 对象的顶部吗?

下面的降价显示了标题使用 成功到达 ggplot 图形顶部的问题fig.topcaption=TRUE,但没有使用plotly对象。

在这里了解了 fig.topcaption 。的底层代码fig.topcaption似乎存在于knitr 中,尽管它与绘图图形不兼容,或者它可能与 pandoc、html/html 小部件相关,或者在从 rmarkdown 到最终输出的链中的其他地方。

我现在对解决方法很满意 - 建议?

---
title: "Untitled"
author: "Internet"
date: "29 février 2020"
output:
  bookdown::html_document2
---

```{r setup, message=FALSE, echo=FALSE}

library(knitr)
library(ggplot2)
library(plotly)

```

Here is a ggplot object with caption at the top as desired.


```{r, fig.cap="Hello ggplot", fig.topcaption=TRUE, message=FALSE, echo=FALSE}
ggplot(diamonds,aes(price,carat)) + geom_point()
```

Here is the previous ggplot converted to a plotly object with caption reverting …
Run Code Online (Sandbox Code Playgroud)

html r ggplot2 r-markdown plotly

7
推荐指数
1
解决办法
401
查看次数

我们能否将回归方程与 R2 和 p 值整齐对齐?

将回归方程、R2 和 p 值(对于方程)巧妙地添加到ggplot图中的最佳(最简单)方法是什么?理想情况下,它应该与组和分面兼容。

第一个图具有回归方程加上使用ggpubr分组的 r2 和 p 值,但它们没有对齐?我错过了什么吗?它们可以作为一个字符串包含在内吗?

library(ggplot)
library(ggpubr)

ggplot(mtcars, aes(x = wt, y = mpg, group = cyl))+
  geom_smooth(method="lm")+
  geom_point()+
  stat_regline_equation()+
  stat_cor(aes(label = paste(..rr.label.., ..p.label.., sep = "*`,`~")),
           label.x.npc = "centre")
Run Code Online (Sandbox Code Playgroud)

情节1

这是ggpmisc 的一个选项,它做了一些奇怪的放置。
编辑奇怪的位置是由 引起的geom=text,我已将其注释掉以提供更好的位置,并添加了 `label.x = "right" 以停止过度绘制。由于@dc37 标记的上标问题,我们仍然根据ggpubr存在未对齐问题

#/sf/answers/2639618271/
library(ggpmisc)

ggplot(mtcars, aes(x = wt, y = mpg, group = cyl))+
  geom_smooth(method="lm")+
  geom_point()+
  stat_poly_eq(formula = "y~x", 
             aes(label = paste(..eq.label.., ..rr.label.., sep = "*`,`~")), 
             parse = …
Run Code Online (Sandbox Code Playgroud)

label r ggplot2 ggpmisc ggpubr

6
推荐指数
2
解决办法
1747
查看次数

我应该如何在 R 中有效地跨 gt 表的行进行格式化?

如果我想有效地格式化 gt 表的行,是否有比我在下面显示的方法更好的方法。

有些行是字符,因此不需要格式化,有些是需要一位小数的数字,有些是需要两位小数的数字,有些是需要两位小数的百分比。无论做什么,理想情况下都应该推广到其他可能的格式。

我创建了一个数据框,用于创建格式规范,但每种格式都需要在管道中使用单独的命令。

library(dplyr)
library(gt)

#create small dataset
gtcars_8 <-
  gtcars %>%
  dplyr::group_by(ctry_origin) %>%
  dplyr::top_n(2) %>%
  dplyr::ungroup() %>%
  dplyr::filter(ctry_origin != "United Kingdom")

#transpose data
row_labels <- colnames(gtcars_8)
gtcars_8_t <- as.data.frame(t(as.matrix(gtcars_8)))
gtcars_8_t$row_labels <- row_labels
my_column_names <- colnames(gtcars_8_t)[1:8]

#format data
format_specs <- as.data.frame(row_labels[1:10])
format_specs$type     <- c("c","c","n","c","c","n","n","n","n","p")
format_specs$decimals <- c( 0 , 0 , 0 , 0 , 0 , 1 , 2 , 2 , 1 , 2 )
format_specs

#make basic gt table
gtcars_8_t %>%
  slice(1:10) %>% 
  gt()

#make …
Run Code Online (Sandbox Code Playgroud)

format r gt

6
推荐指数
1
解决办法
623
查看次数

在美元符号前使用减号正确格式化负货币值

我想在美元符号之前用减号正确格式化负货币值。

下面的代码在美元符号后面加减号,即$-100

library(scales)
dollar(-100)
Run Code Online (Sandbox Code Playgroud)

您将如何将其更改为所需的输出,即 -$100?我在文档https://rdrr.io/cran/scales/man/dollar_format.html 中没有看到明显的选项

formatting currency r

5
推荐指数
1
解决办法
1408
查看次数

控制数据表输出中的行条纹颜色

在数据表 (DT) 中设置自定义行条纹/行条纹颜色的“最佳”方法是什么?

我正在使用数据表 (DT) 创建交互式表格(例如通过 rmarkdown 的 HTML),具有下载功能等。这就是为什么我不使用 Huxtable 或任何其他表格格式包,理想情况下我不必设置样式在将其发送到数据表之前,首先将表放在另一个包中 - 尽管如有必要/最佳可用选项对此开放。

这是一个独立的行条带化示例,根据此处显示的示例进行修改,answer#1 ( https://src-bin.com/en/q/1b3261f ),类似于此不成功的尝试。一个问题是悬停颜色不再有效,尽管它是应用于任何存在的颜色?另一个是行颜色在按列重新排序后保持原始行数据 - 不确定这种默认行为是否是我想要的 - 是否容易更改?

  DT::datatable(head(iris, 20),
                extensions = 'Buttons',
                options=list(dom = 'Bfrtip',
                             buttons = c('excel','csv','print'),
                             rowCallback=JS(
                               'function(row,data) {
     if($(row)["0"]["_DT_RowIndex"] % 2 <1) 
            $(row).css("background","#f2f9ec")
   }'))) 
Run Code Online (Sandbox Code Playgroud)

这里有一个选项可以按值为单元格的背景着色,这不是我所追求的: color-cells-in-dt-datatable-in-shiny

Datatables(dot)net datatables.net/manual/styling/theme-creator有一个示例样式表,它创建了一大堆 CSS(357 行代码),大概可以在 style.css 文件中使用它来执行所需的操作(行条纹,自定义颜色)?当我认为我的目的的秘诀就是这行代码(如下)时,这对我来说似乎有点过分了。请注意,数据表示例的默认行为具有独立于初始行号的条带化(参见上面的代码,条带化保留在原始原始数据中)。我可以将下面的代码直接放入 r 数据表代码中吗,例如上面的例子?

table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {`
background-color` `: ` `#f9f9f9` `; }`
Run Code Online (Sandbox Code Playgroud)

css r dt

5
推荐指数
1
解决办法
1323
查看次数

Plotly 自定义模式栏图标更改颜色和形状,并在 R 的新窗口中打开链接

我正在使用自定义模式栏图标在新窗口中打开链接,并且遇到了一些相关问题

问题 1) 自定义图标不是正方形。如果重新缩放以适应正方形将太小。你如何让它正确显示?要在编织 rmarkdown 后获得的 html 中进行编辑很简单,通过右键单击您的图标,然后选择检查,您可以将宽度从 1em 更改为 2em 以获得一个宽矩形。

<svg viewBox="0 0  NaN" class="icon" height="1em" width="2em">
Run Code Online (Sandbox Code Playgroud)

你如何在 R 中控制它?

问题 2) 自定义图标默认为单调灰色。如何获得你喜欢的颜色?要在编织 rmarkdown 后获得的 html 中进行编辑很简单,通过右键单击您的图标,然后选择检查,然后添加样式 = 填充...代码,您可以使用您的颜色:

transform="scale(1) translate(0, -8)" style="fill:#7ac143"></path>
Run Code Online (Sandbox Code Playgroud)

你如何在 R 中控制它?下面的示例代码不使用颜色设置。

问题 3) Icon 有一个链接,理想情况下可以在新窗口中打开。plotly 按钮会打开一个新窗口。下面的自定义图标示例代码不使用“空白”选项在新窗口中打开。

你怎么能在新窗口中打开它?

---
title: "Custom icons in Plotly"
output: html_document
---

```{r echo = FALSE, message = FALSE}
library(plotly)
library(htmlwidgets)
library(ggplot2)

data <- data.frame(
    Time = round(runif(10), 2),
    Value = round(runif(10), 2),
    Type = …
Run Code Online (Sandbox Code Playgroud)

r plotly

5
推荐指数
1
解决办法
621
查看次数

在顶级标题之前将图像添加到 Rmarkdown Bookdown 输出

下面的示例(即保存为文件index.rmd)具有相同的代码块,用于在顶级标题的上方和下方显示图像,但图像不会出现在顶级标题的上方。如果在同一目录中有一个只有这个条目的文件_output.yml,就会发生这种情况bookdown::gitbook:

该行似乎强制执行目录(我想要的)并且默认情况下似乎在第一个顶级标题之前删除任何内容(图像或文本)(我不想要) - 那么可以修改这种行为吗?

---
site: bookdown::bookdown_site
---

```{r echo=FALSE, message=FALSE, warning=FALSE}
library(imager)
im <- load.image(system.file('extdata/Leonardo_Birds.jpg',package='imager'))
plot(im, axes=FALSE)
```

# R Markdown

```{r echo=FALSE, message=FALSE, warning=FALSE}
library(imager)
im <- load.image(system.file('extdata/Leonardo_Birds.jpg',package='imager'))
plot(im, axes=FALSE)
```
Run Code Online (Sandbox Code Playgroud)

r-markdown bookdown

5
推荐指数
1
解决办法
1443
查看次数

通过自定义模式栏按钮从绘图图下载数据,用 R 编码

我有一个情节图(在我的例子中是用 R/rmarkdown 制作的),并且想下载数据。

  • 选项 1 是图表外部到数据对象(例如 CSV 或表格)的下载按钮。例如 下载输出文件csv,或者这个. 它有效,但不是那么整洁 - 使用自定义模式栏会更整洁。

选项 2 和 3 使用自定义模式栏按钮。 plotly book - 自定义模式栏按钮有一个很好的示例,其中包含制作自定义按钮的代码。

  • 选项 2,是一个下载按钮(例如到 csv)作为一个情节自定义模式栏按钮。大概这可以在javascript(或html)中完成并通过,类似于下面选项3中的示例?有关如何执行此操作的建议?在Plotly 论坛上有一些关于这个选项的讨论,使用 Dash(?),但这远远超过了我的工资等级。

  • 选项 3 是一个链接到表格(可能是附录或其他带有数据表对象的网站)的按钮,其中该数据表有一个下载按钮。最后一部分,制作一个可以单击的数据表按钮很容易(请参阅此处)。网站链接的 javascript 代码应该如下所示(javascript 链接到网站)。当您单击时,绘图模式栏中的默认 Plotly 按钮会将您发送到链接的网站,但不确定如何从 R 复制该 html/javascript。

我在这段代码中遗漏了一些简单的东西吗?

编辑下面的图标 web 链接在浏览器中打开后有效 - 即单击图标不会从 Rstudio 查看器打开网站。

#devtools::install_github('cpsievert/plotly_book') #for octocat image
library(tidyverse)
library(DT)
library(plotly)

data(octocat_svg_path, package = "plotlyBook")

octocat <- list(
    name = "octocat",
    icon = list(
      path = …
Run Code Online (Sandbox Code Playgroud)

html javascript r plotly

4
推荐指数
1
解决办法
2699
查看次数

使用lapply进行公式更改的多元回归,而不是数据集

我已经看到了list apply(lapply)的一个例子,它可以很好地获取数据对象列表,并返回一个回归输出列表,我们可以将它传递给Stargazer以获得格式良好的输出. 使用stargazer,通过在split data.frame上提供lamply创建的lm对象列表

library(MASS)
library(stargazer)
data(Boston)

by.river <- split(Boston, Boston$chas)
class(by.river)

fit <- lapply(by.river, function(dd)lm(crim ~ indus,data=dd))
stargazer(fit, type = "text")
Run Code Online (Sandbox Code Playgroud)

我想做的是,不是传递数据集列表来对每个数据集进行相同的回归(如上所述),而是传递一个独立变量列表,对同一数据集进行不同的回归.从长远来看,它看起来像这样:

fit2 <- vector(mode = "list", length = 2)
fit2[[1]] <- lm(nox ~ indus, data = Boston)
fit2[[2]] <- lm(crim ~ indus, data = Boston)
stargazer(fit2, type = "text")
Run Code Online (Sandbox Code Playgroud)

与lapply,我试过这个,它不起作用.我哪里做错了?

myvarc <- c("nox","crim")
class(myvarc)
myvars <- as.list(myvarc)
class(myvars)
fit <- lapply(myvars, function(dvar)lm(dvar ~ indus,data=Boston))
stargazer(fit, type = "text")
Run Code Online (Sandbox Code Playgroud)

regression r lapply stargazer

2
推荐指数
1
解决办法
2202
查看次数