将迷你图添加到表中

2024-03-23

我试图将所有数据处理转移到 Rmarkdown,而不是 SPSS+Excel,但不知道如何创建带有附加图表的表格。

在 Excel 中,这可以通过 Sparklines 功能来完成,或者像我一样,只需创建一个图表并非常准确地放置它。

上表是使用 Tables 包(和 Pander)中的表格函数创建的。并粘贴到 Excel 中以创建图表(以及图表标题)。

library(tables)
library(pander)
pander( #convert table to rmarkdown table
  tabular( 
  (Species + 1) ~ (n=1) + Format(digits=2) *
         (Sepal.Length + Sepal.Width) * (mean + sd), 
  data = iris),
  caption = "Table 1. Iris") #Heading for table

有人创造过这样的东西吗?也许是使用 gridExtra 包的解决方法,尽管我怀疑该包是否可以将表格和图形匹配在一起。


编辑-到目前为止我的解决方案。
HTML 已完成。 pdf 已经完成一半了。对于文档,我认为不可能(复制粘贴到 Excel)。

HTML表格
首先,R 知道我正在渲染 html、pdf 还是 doc。 out_type 取值:“html”、“pdf”和“docx”。我可以在 if 语句中使用这个对象。

out_type <- knitr::opts_knit$get("rmarkdown.pandoc.to")

现在是酒吧:

    if(out_type == "html"){ #if output is html then:
        my_table$Mean_Sepal_Length <- paste0( #I have a table saved as a dataframe. I add a column to it called Mean_Sepal_Length
"<span style=' width: 100%; display: flex;'><span style='display: inline-block; border-radius: 3px; padding-right: 0; background-color: #00457C; width:", #create the bar
        MEAN_SEPAL_L_OBJECT, #set the with of the bar. I have an object with these proportions
"%; margin-right: 5px;'>&nbsp;</span><span>", MEAN_SEPAL_L_VARIABLE, "%</span></span>") #finally add the value behind the bar.
    }

也可以有两列。

在这里,我再次有一个带有比例的表格,我有两个具有男性和女性比例的对象。

    my_table$male_female <- paste0(
"<span style=' width: 100%; display: flex;'><span>", MALE_BAR, #the proportion of males
 "%</span><span style='display: inline-block;border-top-left-radius: 3px; border-bottom-left-radius:3px; padding: 0; background-color: #00457C; width:", MALE_BAR, #width of the bar for males
 "%; margin-left: 5px;'></span><span style='display: inline-block; border-top-right-radius: 3px; border-bottom-right-radius:3px; padding:0; background-color: #AC1A2F; width:",
 FEMALE_BAR, #width of bar for females
 "%;margin-right: 5px;'></span><span>", FEMALE_BAR, #proportion of females
 "%</span></span>")

当然,如果您愿意,您也可以将数字放在条形内,但是当条形很小时,这是一个问题。

PDF
我还没搞懂pdf。到目前为止,这是我的解决方案:

\begin{tabular}{>{$\rhd$ }lrl}
Loop at line 151 in divergence  & \mybar{3.420}\\
Loop at line 1071 in radiation  & \mybar{3.270}\\
scalar face value               & \mybar{3.090}\\
Loop at line 102 in get         & \mybar{1.700}\\
get sensible enthalpy           & \mybar{1.250}\\
\end{tabular}

看起来不太好。我对乳胶很陌生。我仍然需要找出如何将数字放在栏后面。以及如何将其放入我的函数中的 if 语句中。如果是 HTML,则:如果是 pdf,则...

我希望这可以帮助别人。 但是请考虑此线程中提到的软件包。他们非常出色,我的解决方案很大程度上基于他们。我只是无法准确地获得我想要的包,所以我手动完成了此操作。


只需在之前的答案中添加一个迷你图示例即可。希望能帮助到你。

---
title: http://stackoverflow.com/q/32841221/680068
---

```{r results="asis"}

library(dplyr)
library(formattable)
library(sparkline)


res <- 
  iris %>% 
  group_by(Species) %>% 
  summarise(N=n(),
            SL_Mean=round(mean(Sepal.Length),3),
            SL_SD=round(sd(Sepal.Length),3),
            SW_Mean=round(mean(Sepal.Width),3),
            SW_SD=round(sd(Sepal.Width),3)) %>%
  mutate(sparkline = as.character(Species))

#using formattable
formattable(
  res,
  list(
    SL_Mean=color_bar("pink", proportion),
    "sparkline"=function(z){
      sapply(
        z,
        function(zz){
          knitr::knit(
            text = sprintf(
              '`r sparkline(c(%s))`',
              paste0(
                iris[which(iris$Species == zz),"Sepal.Length"],
                collapse=","
              )
            ),
            quiet = TRUE
          )
        }
      )
    }
  )
)


```

另外,我认为非rmarkdown例子可能会让一些人高兴。

library(dplyr)
library(formattable)
library(sparkline)


res <-
  iris %>%
  group_by(Species) %>%
  summarise(N=n(),
            SL_Mean=round(mean(Sepal.Length),3),
            SL_SD=round(sd(Sepal.Length),3),
            SW_Mean=round(mean(Sepal.Width),3),
            SW_SD=round(sd(Sepal.Width),3)) %>%
  mutate("sparkline" = as.character(Species))

#using formattable
ft <- formattable(
  res,
  list(
    SL_Mean=color_bar("pink", proportion),
    "sparkline"=function(z){
      sapply(
        z,
        function(zz){
          sprintf(
            '<span class="sparkline-bar">%s</span>',
            paste0(
              iris[which(iris$Species == zz),"Sepal.Length"],
              collapse=","
            )
          )
        }
      )
    }
  )
)

library(htmlwidgets)
browsable(
  attachDependencies(
    tagList(
      onRender(
        as.htmlwidget(ft),
        "function(el,x){$('.sparkline-bar').sparkline('html',{type:'bar'});}"
      )

    ),
    htmlwidgets:::widget_dependencies("sparkline","sparkline")
  )
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将迷你图添加到表中 的相关文章

  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • 尝试读取 CSV 文件时出现“无法识别的字符串转义”

    我正在尝试导入一个 csv文件 以便我可以观看此视频 R ggplot2 图形直方图 http www youtube com watch v 47kWynt3b6M 我安装了所有正确的软件包 包括ggplot以及相关的包 视频中的第一个说
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 在 NetworkX 中使边缘更粗

    student id 0 1 2 3 4 5 6 7 8 9 10 11 12 0 131X1319 1 14 6 16 1 10 8 15 15 17 15 18 16 1 13212YX3 1 1 4 8 11 9 14 7 0 3 0
  • 计算 R 中各列的唯一值

    我正在尝试创建一个新变量 其中包含来自两个不同列的字符串值的唯一计数 所以我有这样的东西 例如 A tibble 4 x 2 names partners
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 为什么 R 更新后 sim_slopes() 中会出现此错误?

    我正在尝试使用 交互 包来创建简单斜率的约翰逊 尼曼图 但是 当尝试运行 sim slopes 函数时 出现以下错误 直到我将R更新到4 2 2 我才没有遇到这个问题 我使用的是 macOS Ventura 13 1 Error class
  • ggplot2:如何标记事件发生的日期

    我想从第二个情节中获取第一个情节的信息 第二张图表示事件发生的天数 它看起来更宽 因为它没有图例 但它是相同的时间尺度 我选择在第一个图中手动分配颜色 I would like to overlay the second plot dots
  • 纵向比较 R 中的值...并进行扭转

    我有许多人在多达四个时间段进行的测试结果 这是一个示例 dat lt structure list Participant ID c A A A A B B B B C C C C phase structure c 1L 2L 3L 4L
  • 投资决策:R中的NPV、IRR、PB计算

    我正在尝试计算不同数量项目的净现值 NPV 内部收益率 IRR 和投资回收期 PB 时间 以评估哪个投资项目提供最佳回报 到目前为止 我可以为每个项目单独计算几行代码 但我想做的是 编写一个函数 它接受一个包含许多不同项目及其现金流的矩阵
  • read_html(url) 和 read_html(content(GET(url), "text")) 之间的区别

    我正在看这个很棒的答案 https stackoverflow com a 58211397 3502164 https stackoverflow com a 58211397 3502164 解决方案的开头包括 library httr
  • 如何在将两根柱子保持在一起的同时熔化柱子?

    我有这种宽格式的数据 我想将其转换为长格式 Cond Construct Line Plant Tube shoot weight shoot Tube root weight root 1 Standard NA NA 2 199 95
  • R:使用 tidyverse 将 NA 替换为 df 中的其他变量

    我想使用 tidyverse 替换 df 中的 NA 值 我想要的值应该从其他列中计算出来 input ID X1 X2 X3 A 0 96 NA 0 97 B 1 00 NA 1 01 C 0 98 0 03 NA A 1 00 NA 1
  • 在 ifelse() 语句内部和外部运行一行时的不同输出

    我正在尝试运行一个简单的命令 但不知道为什么在内部和外部运行它时输出不同ifelse 功能 函数条件评估为FALSE 所以输出应该完全相同 但是 单独运行时 输出为0 0 1 1 0 1 0 1 NA 根据需要 但是从ifelse 函数 输
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • 线性判别分析图

    如何将样本 ID 行号 作为标签添加到此 LDA 图中的每个点 library MASS ldaobject lt lda Species data iris plot ldaobject panel function x y points

随机推荐

  • Objective-C 类中的 Swift 协议扩展

    我有一个用 Swift 编写的协议 应该由多个控制器遵守 其中一些控制器是用 Objective C 编写的 并非所有人都需要此 Swift 协议中的所有方法 因此首先我决定提供一些具有默认实现的方法 以使它们成为 可选 但在这种情况下 我
  • TensorFlow 的无效参数错误(形状不兼容)

    我正在尝试使用 MNIST 数据集的张量流训练一个简单的网络 目前虽然它不起作用 它基本上是 TensorFlow 网站上给出的示例的修改版本 我只是改变了几行并删除了一层来看看发生了什么 这是我的代码 usr bin python imp
  • Spark JDBC fetchsize 选项

    我目前有一个应用程序 它应该连接到不同类型的数据库 使用 Spark 的 JDBC 选项在该数据库上运行特定查询 然后将生成的 DataFrame 写入 HDFS Oracle 的性能非常糟糕 没有检查所有这些 原来是因为fetchSize
  • 使用 matlab 识别实时视频源中的白框

    我目前正在使用 matlab 编写一个项目 该项目使用两个相对较大的方块来识别实时视频源中的一张纸 然而 纸张可以是任何颜色或上面有任何图像 我对彩色图像使用白色框 对非彩色图像使用黑色框 尽管这些框在视频中显示得非常清楚 但我不知道如何编
  • CSS3 同一元素的多次转换

    我正在尝试为我的一张背景图像制作下拉效果 我可以使用 css3 做到这一点 但它并不完整 效果应该是窗帘落下然后弹回一点 css3 的问题是我不知道如何对同一属性进行转换 因为最后一个会覆盖前一个 这是我的代码 ul nav li a AD
  • 如何在“删除文件”任务中从删除中排除某些目录和文件

    我想删除其中的所有文件 Build ArtifactStagingDirectory 它是相应构建代理文件夹中所谓的 a 文件夹 单击阅读有关天蓝色管道中预定义变量的更多信息 我也知道删除文件任务 https learn microsoft
  • Spark 结构化流检查点在生产中的使用

    在使用 Spark 结构化流时 我很难理解检查点的工作原理 我有一个 Spark 进程 它会生成一些事件 并将其记录在 Hive 表中 对于这些事件 我在 kafka 流中收到确认事件 我创建了一个新的火花过程 将 Hive 日志表中的事件
  • 用 C 和 C++ 编写的解释器如何将标识符绑定到 C(++) 函数

    我在这里讨论的是 C 和 或 C 因为这是我所知道的唯一用于解释器的语言 其中以下可能会出现问题 如果我们有一种解释性语言 X 为其编写的库如何向该语言添加函数 然后可以从用该语言编写的程序中调用这些函数 PHP 示例 substr str
  • 控制台maven编译错误

    我正在制作春季官方指南之一 http spring io guides gs maven http spring io guides gs maven 但是 当到达必须使用 Maven 进行编译的部分时 会发生以下情况 INFO Scann
  • 替换嵌套数组中的对象

    我有一个数组 其中存储了另一个代理数组 在此代理数组中 仅包含每个代理的 id 使用 ID 我获取每个代理所需的数据 并且我想用新的完整代理数据替换原始代理数组 或者至少将新数据推送给特定代理 这是我到目前为止所尝试过的 有简单的方法吗 如
  • .net C#,保护每种方法的最佳实践是什么?

    我有一个 Web 项目 其中有一个处理一些数据操作的业务层 我想通过检查是否存在活动的未结束有效来保护某些或所有方法Session在执行该方法之前 我首先想到使用Attribute上课了 但我无法正确运行它 由于该类是一个普通类并且不是派生
  • 具有相同底层类型和相同扩展方法的顶级不透明类型

    我在定义具有相同底层类型和扩展方法的不透明类型时遇到了一个问题 例如 opaque type HandleA Int object HandleA def apply value Int HandleA value extension ha
  • jmockit 和 robolectric 可以共存吗?

    我正在尝试使用 Robolectric 来替换 android jar 中的存根方法来实现单元测试 同时还使用 jMockit 来模拟 Android 类 在我的例子中为 Fragment 但是 我似乎无法让它发挥作用 如果我用注释测试类
  • Magento - 如何查询管理员的角色名称?

    我正在尝试获取当前登录管理员的角色名称 我可以获得管理员用户 但我不知道如何查询他们的角色名称 Magento 文档很弱 usr Mage getSingleton admin session gt getUser 有人有想法吗 说得太早了
  • 具有扩展选择参数的 Jenkins 声明式管道

    我尝试使用 Jenkins 实现我的第一个声明式管道 以便能够将作业的参数定义也放在 SCM 下 我想转移具有扩展选择参数的现有作业 不幸的是 我无法将其添加到脚本的parameters 部分 在插件页面上 https wiki jenki
  • 在 HTTP 响应标头中使用内容处置

    我发现以下 asp net 代码在从数据库提供文件时非常有用 Response AppendHeader content disposition attachment filename fileName 这允许用户将文件保存到他们的计算机
  • Android 通过 ID 获取联系人组

    我有联系人 ID 如何获取联系人所属的组 我确信这与 Contacts Groups 类有关 但我无法弄清楚 In GroupMembership PERSON ID你有这个人的 ID 并且在同一张表中GroupMembership GRO
  • 如何在 .ascx 页面中使用 javascript

    如何在 ascx 页面中使用 javascript 您可以将脚本标签添加到标记中 Or use 脚本管理器 http msdn microsoft com en us library system web ui scriptmanager
  • 如何在链接期间替换pthread_create

    我想维护所有正在运行的线程的列表 以及有关每个线程的一些附加信息 在这个answer https stackoverflow com a 3476240 4676150提到可以提供我自己的 pthread create 版本并将程序与其链接
  • 将迷你图添加到表中

    我试图将所有数据处理转移到 Rmarkdown 而不是 SPSS Excel 但不知道如何创建带有附加图表的表格 在 Excel 中 这可以通过 Sparklines 功能来完成 或者像我一样 只需创建一个图表并非常准确地放置它 上表是使用