小编cbe*_*ica的帖子

获取`source`d文件的文件名和路径

sourced或Sweaved文件如何找到自己的路径?

背景:

我使用.R脚本或.Rnw文件工作了很多.我的项目是在一个目录结构中组织的,但是项目基本目录的路径经常在不同的计算机之间变化(例如,因为我只为其他人做了部分数据分析,他们的目录结构与我的不同:我有项目基目录〜/ Projects/StudentName /或〜/ Projects/Studentname/Projectname和大多数只拥有一个项目的学生通常在〜/ Measurements /或〜/ DataAnalysis /或类似的东西下 - 这对我不起作用).

所以像一条线

    setwd (my.own.path ()) 
Run Code Online (Sandbox Code Playgroud)

将是非常有用的,因为它将允许确保工作目录是项目的基本路径,无论该项目实际在哪里.无需用户必须考虑设置工作目录.

让我澄清一下:我寻找的解决方案可以按下不假思索的用户的编辑器/ IDE sourceSweave键盘快捷键.

r sweave

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

保持`knitr`弹出情节窗口

我是从开关Sweaveknitr和非常喜欢它.非常感谢Yihui!

让我烦恼的一件事是剧情窗口弹出并变​​得活跃.因此,当我在knitr工作时写作时,我的编辑经常会失去焦点.即使代码块中没有生成绘图,也会发生这种情况.

有办法避免这种情况吗?

这是我的sessionInfo (),如果有帮助:

R version 2.15.0 (2012-03-30)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8    
 [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
[1] hyperSpec.sim_0.5       mvtnorm_0.9-9992        hyperSpec_0.98-20120531
[4] lattice_0.20-6          knitr_0.5              

loaded via a namespace (and not attached):
 [1] arrayhelpers_0.75-20120531 codetools_0.2-8           
 [3] digest_0.5.2               evaluate_0.4.2            
 [5] formatR_0.4                highlight_0.3.1           
 [7] parser_0.0-14 …

r knitr

15
推荐指数
1
解决办法
329
查看次数

.Rd链接到建议的包

我的hyperSpec包提供了处理光谱数据集的功能.我为来自其他软件包的许多功能提供了hyperSpec方法.但是,其中一些其他软件包,我已经列出,Suggests:因为我不想强迫用户安装20个其他软件包(计算依赖项),如果它们可能永远不会使用特定功能.

从编码的角度来看,这很有效.但是,我不知道如何在.Rd文件中处理它 - 但我确信这是一个相当普遍的问题.

通常\code{\link[otherpkg]{fun}}不会可靠地工作,因为不能保证otherpkg可用.如果未安装otherpkg,则链接断开.这将通过R CMD check例如Winbuilder和r-forge 检测到.这意味着:包不会通过CRAN检查.

哪个包是个好例子?

到目前为止我找到的唯一提示(虽然没有解决方案):https://stat.ethz.ch/pipermail/r-devel/2009-November/055425.html(但该电子邮件没有答案).

documentation r rd

14
推荐指数
2
解决办法
1568
查看次数

Make Sweave或knitr将图形后缀放在`\ includegraphics {}`中

我刚刚遇到(好奇)问题,在向一些Elsevier期刊提交(pdf)LaTeX手稿时,需要完成数字的文件名,以便通过他们的pdf构建和检查系统找到,即:

\includegraphics{picture.pdf}
Run Code Online (Sandbox Code Playgroud)

有没有简单方便的方法告诉Sweave或knitr这样做?

编辑:

  • 我熟悉sweave的include=FALSE选择
  • 我也觉得很有能力打补丁 utils:::RweaveLatexRuncode

但是,目前我希望有更方便和优雅的东西.

它也是关于分发.Rnw文件作为补充材料或小插曲.从教学的角度来看,我不喜欢这些调整,这些调整使源代码对于我希望他们阅读它的新用户来说更加复杂.

(这也是我真正欣赏最近print=TRUE在Sweave 推出的原因)

latex r sweave knitr

10
推荐指数
1
解决办法
1134
查看次数

R包中的代码:找出它所包含的*包/命名空间

有没有办法代码的R包可以找出哪些属于包或命名空间?


背景:我发现在包名称不同的包之间有共同的代码.一个常见的例子tests/testthat.R:

library(testthat)
library(ShiftedExcitation)

test_check("ShiftedExcitation")
Run Code Online (Sandbox Code Playgroud)

如果代码可以找出它所属的包或命名空间,我可以避免现在给出包名的许多地方.


现在我定义一个包含包名称的隐藏变量

.PKG <- "ShiftedExcitation"

然后用东西线沿线的*

library(testthat)
library(.PKG, character.only = TRUE)

test_check(.PKG)
Run Code Online (Sandbox Code Playgroud)

但我很好奇是否存在更优雅的解决方案.

*到目前为止,我没有得到这个工作,因为testthat.R在包命名空间之外进行了评估.但它确实可以用于unittest在包代码中定义函数.

r package

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

Matlab`imagec`:如何用流畅的颜色显示?

我有一个显示的矩阵imagesc.现在我被要求制作一个"插补"版本(即显示更平滑的颜色).

虽然我可以计算一个更大的插值矩阵,但我似乎记得有一个命令在两种这样的显示模式之间切换,无论是风格的一个小命令axis equal还是一些属性 - 但我找不到它.

matlab image figure matlab-figure

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

`as.matrix`和`as.data.frame` S3方法与S4方法

我注意到,定义as.matrixas.data.frame如S3方法的S4类使得如lm (formula, objS4)prcomp (object)工作的开箱.如果将它们定义为S4方法,则不起作用.

为什么将方法定义为S3或S4方法至关重要?

示例as.data.frame:

setClass ("exampleclass", representation (x = "data.frame"))
object <- new ("exampleclass", x = iris)

setMethod ("as.data.frame", signature="exampleclass", definition= function (x, ...) x@x )
## [1] "as.data.frame"

as.data.frame (object)
## Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            5.1         3.5          1.4         0.2     setosa
## 2            4.9         3.0          1.4         0.2     setosa
## 3            4.7         3.2          1.3         0.2     setosa
## ...snip...

lm (Petal.Length ~ Petal.Width, object)
## error in …
Run Code Online (Sandbox Code Playgroud)

methods r s4

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

使用`fig.keep ='all'`编织时如何指定图名

我正在knitr用来生成报告.但是,我经常首先准备包含所有情节的"内部"文件,然后对于最终报告或纸张只想包含一些数字.

说,我有一套系统生成的数字,说我循环我的标本:

<<sample, fig.keep = 'all'>>=
specimen <- c("436a", "783a", "10b")
for (s in specimen) # in reality it would e.g. be levels (specimen)
   plot (results [s])
@
Run Code Online (Sandbox Code Playgroud)

这将产生许多文件figures/sample1.pdf,figures/sample2.pdf等等.虽然编号为1,2,...对于针织生成的报告是好的,如果我想在纸张中包含其中一个图表,那么它很麻烦并且容易出错找出哪个.pdf属于哪个样本.

如何判断knitr使用文件名"figures/sample-436a.pdf"

我尝试过<<fig.path = sprintf ("figures/sample-%s", s)>>=,但这不起作用:s未知,所以我猜fig.path是在块处理开始时评估,而不是在保存块时.

PS:减少错误风险的一个显而易见的方法是标题,但这是恕我直言,在纸上丑陋.

r knitr

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

标签 统计

r ×7

knitr ×3

sweave ×2

documentation ×1

figure ×1

image ×1

latex ×1

matlab ×1

matlab-figure ×1

methods ×1

package ×1

rd ×1

s4 ×1