小编r0b*_*rts的帖子

如何使用knitr从块中插入普通图片(jpeg/png)

我想使用代码块在文本的开头插入图片,而不是降价.我正在使用Tufte讲义模板output: rmarkdown::tufte_handout,当我在YAML标题后直接插入它但在TOC之前插入如下:

\centering
![width='100%'](./cropped-banner_efpt.jpg)
\raggedright
\tableofcontents
\clearpage
Run Code Online (Sandbox Code Playgroud)

然后图像跨越主体.我知道有块可以选择让块跨越整个页面放置fig.fullwidth = TRUE在块头中,但我有点困惑,因为我没有从数据生成任何图形,我不知道如何简单的地方来自块内的图像.

另一个问题是,当我在YAML头中设置toc:true时,图像只会插入的toc 之后出现 - 这就是我使用latex命令插入toc的原因.

谢谢你的建议.

latex r image knitr r-markdown

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

R 脚本中的 here() 问题

R 脚本中的问题

我试图了解 here() 如何以可移植的方式工作。找到它:在最终答案下查看稍后的工作- TL; DR - 底线,从命令行here()运行 a 并不是那么有用script.R

我在 JBGruber 的帮助下理解它的方式:here()查找项目的根目录(例如,RStudio 项目、Git 项目或其他使用 .here 文件定义的项目)从当前工作目录开始并向上移动,直到找到任何项目。如果它没有找到任何东西,它会退回到使用完整的工作目录。如果由 cron 运行的脚本将默认为我的主目录。当然,可以通过 cron 命令将目录作为参数传递,但它相当麻烦。下面的答案提供了很好的解释,我总结了我在“最终答案部分”下发现最有用的内容。但不要误会,尼古拉的回答非常好,也很有帮助。

原始目标- 编写一组 R 脚本,包括 R-markdown,.Rmd以便我可以压缩目录,发送给其他人,并且它可以在他们的计算机上运行。可能在非常低端的计算机上 - 例如 RaspberryPi 或运行 linux 的旧硬件。

状况:

  • 可以通过命令行运行 Rscript
  • 如上所述,但通过 cron
  • 设置工作目录的主要方法是set_here()- 从控制台执行一次,然后该文件夹是可移植的,因为该.here文件包含在压缩目录中。
  • 不需要Rstudio- 因此不想做 R 项目
  • 可以也可以从交互方式运行Rstudio(开发)
  • 可以从执行shiny(我认为如果满足上述条件就可以了)

我特别不想创建 Rstudio 项目,因为在我看来它需要安装和使用 Rstudio,但我希望我的脚本尽可能可移植并在低资源、无头平台上运行。

示例代码:

让我们假设工作目录myGoodScripts如下:

/Users/john/src/myGoodScripts/ …

cron r path knitr

9
推荐指数
1
解决办法
473
查看次数

如何从特定工作日开始以 7 天为间隔对数据进行分组

我已经为此苦苦挣扎了一段时间。如何以 7 天的间隔对数据进行分组?

本质上,我试图按从星期五开始的“周”进行分组。日期是在周五和下周四之间随机选择的。由于人为错误,每个时期的观察数量可能不完全相同,尽管通常应该有 7 个。可能会丢失一两个时期。

理想的方法似乎是确定每个日期的周期(即从周五开始的一周)编号,然后将其添加到另一列的数据集中。

> str(data)
'data.frame':   55 obs. of  15 variables:

 $ id           : num  7 8 9 10 11 12 13 16 17 18 ... 
 $ q_0001       : Factor w/ 2 levels "Yes","No": 1 1 1 1 1 1 2 1 1 1 ...
 $ q_0002       : Factor w/ 2 levels "Yes","No": 2 1 1 1 2 2 2 2 2 2 ...
 $ q_0003       : Factor w/ 2 levels "Yes","No": 2 2 …
Run Code Online (Sandbox Code Playgroud)

group-by r

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

R:为什么digest(algo = sha1)会产生与sha1()不同的答案

# what I need
x <- 111111
consistent_output <- hash_function(as.character(x))
Run Code Online (Sandbox Code Playgroud)

我知道这一定有充分的理由,但令我困惑的是为什么在digest图书馆中sha1()digest(,algo=sha1)产生不同的结果。我需要选择在所有机器上给出相同结果的方法。我需要将六到十位数字作为字符串传递,并从单向哈希函数始终获得相同的输出。

  1. 如果R脚本在32位系统和64位系统上完成,结果是否有可能仍然不同?我在 64 位 Linux 计算机上编写脚本,但它们很可能需要在各种 Windows 计算机上执行。

  2. 如何解释下面的不同结果,如果对于我的脚本我选择 或 ,则 future-proof_ness 是否存在digest(x,algo = "sha1")差异sha1(x)

library(digest)

> digest("111111", algo = "sha1")
[1] "f807e8107b0ee536b79044938ac2497845f43c71"
> sha1("111111")
[1] "e6975dc20e721b2a5cfa6f0d834b2bf8287ab592"
Run Code Online (Sandbox Code Playgroud)

当我说面向未来时,我的意思是 - 如果 10 年后我在相同的输入上运行相同的函数,我希望得到相同的输出。

非常感谢,如果我的问题太简单,我深表歉意 - 我不是来自计算机科学背景。

hash r

3
推荐指数
1
解决办法
76
查看次数

标签 统计

r ×4

knitr ×2

cron ×1

group-by ×1

hash ×1

image ×1

latex ×1

path ×1

r-markdown ×1