检查我的R包时出现以下错误
> Error: could not find function "locdata"
> Execution halted
> when running code in ‘DFSurvey.Rnw’
> ...
>
> > opts_chunk$set(cache = TRUE, fig.path = "DFSurveyImages/", dev = "pdf")
>
> When sourcing ‘DFSurvey.R’:
> Error: object 'opts_chunk' not found
> Execution halted
Run Code Online (Sandbox Code Playgroud)
谢毅辉(knitr developer)说是因为在RStudio中,knitr没有被设置为编织方法.Rnw文件,https: //groups.google.com/forum/ ? fromgroups#!topic/knitr/9672CBbc8CM .我在工具和构建选项中都设置了knitr,在R包描述文件中我有:
VignetteBuilder: knitr
Suggests: knitr
Run Code Online (Sandbox Code Playgroud)
在我的小插曲中:
%\VignetteEngine{knitr}
%\VignetteDepends{knitr,xtable,TSP}
Run Code Online (Sandbox Code Playgroud)
当我在RStudio中使用编译pdf或使用knit("KNITR.Rnw")时,它会正确编译.当我检查包时,我得到每个插图的上述错误.我甚至放了
require(knitr)
Run Code Online (Sandbox Code Playgroud)
在我的opts_chunk $ set语句之前.这没有用.我也从命令行运行检查并得到了同样的错误.感谢您的任何帮助.
Knitr是一个有用的包.我在小插图中运行了很长时间的模拟,并且缓存可以在不运行每次模拟的情况下纠正错误.它没有试图找到Sweave.sty文件的问题.
这是我的 sessionInfo()
> R version 3.0.0 (2013-04-03)
> Platform: x86_64-apple-darwin10.8.0 (64-bit)
>
> locale:
> …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个JSP,我需要调用来自Bean的对象的方法.该页面的先前版本不使用JSTL,它可以正常工作.我的新版本有这样的设置:
<jsp:useBean id="pageBean" scope="request" type="com.epicentric.page.website.PageBean" />
<c:set var="pageDividers" value="<%= pageBean.getPageDividers() %>" />
<c:set var="numColumns" value="${pageDividers.size()}" />
Run Code Online (Sandbox Code Playgroud)
变量pageDividers
是一个List
对象.
我遇到了这个问题:当我要求pageDivider
的大小时,会抛出异常.我知道这是一个简单的JTSL错误 - 我做错了什么?
错误消息是:
未指定默认命名空间时,函数大小必须与前缀一起使用
如何正确访问或调用我的pageDividers
对象的方法?
我正准备提交给CRAN的包裹.我使用R CMD build myPackage
然后R CMD check myPackage --as-cran
它通过所有检查没有注释或警告.但是,每次我尝试提交时,我都会从其中一个CRAN维护者那里收到以下错误消息:
包具有VignetteBuilder字段,但没有预先构建的晕影索引.
首先,我希望能够在我自己的系统(R version 3.0.1
)上重现上述错误消息.
晕影.Rnw
文件如下所示:
%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{myVignetteName}
\documentclass{article}
\begin{document}
Here is some code:
<<>>=
plot(1:10, 10:100)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
我尝试INDEX
在根目录中添加一个文件,如下所示:
myFunction a brief description
abc-vignette vignette description
Run Code Online (Sandbox Code Playgroud)
再次,这传递,R CMD check myPackage --as-cran
但我得到相同的错误消息.
我也试图R CMD build myPackage --md5
强制创建一个MD5
文件,但无济于事.
当我看到myPackage.Rcheck/00_pkg_src/myPackage/inst/doc
我找到晕影文件,.Rnw
并按.pdf
预期.
包DESCRIPTION
文件具有以下条目:
VignetteBuilder: knitr
Suggests: knitr
Run Code Online (Sandbox Code Playgroud)
当我看到myPackage.Rcheck/myPackage/Meta
我看到一个条目vignette.rds …
我正在组装一个R包.我想在插图中显示示例代码,其中示例数据文件(包含在包中)用于生成(示例)输出文件.
我在Hadley Wickham的帖子(http://r-pkgs.had.co.nz/data.html)中阅读了关于使用示例数据的内容,并且相信我应该将我的示例数据保留为原始数据,因为必须将其解析为生成输出.
所以,我在我的包结构中创建了一个目录
/Users/userName/myPackage/inst/extdata/
Run Code Online (Sandbox Code Playgroud)
使用子目录InputFiles和OutputFiles.
我将示例文件(exampleData.csv)放在InputFiles子目录(/ Users/userName/myPackage/inst/extdata/InputFiles)中.
我的小插曲位于:
/Users/userName/myPackage/vignettes/myPackage.Rnw
Run Code Online (Sandbox Code Playgroud)
它包含以下语法:
<<eval=FALSE>>=
fileString = "/Users/userName/myPackage/inst/extdata/InputFiles/exampleData.csv"
doFunction1(fileString)
doFunction2(fileString)
doFunction3(fileString, output ="Users/userName/myPackage/inst/extdata/OutputFiles")
@
Run Code Online (Sandbox Code Playgroud)
我在开发这个插图及其示例数据集时遇到两个问题:
1)我不确定我是否使用extdata文件.根据前面提到的Hadley Wickham参考,这似乎是放置我的示例文件的最佳目录名称和位置.
2)我不确定如何使路径相对而不是绝对,就像我现在所拥有的那样.您可以看到,此示例代码不会自动运行.相反,我把它放在一个Eval = FALSE的R块下,这样就可以简单地列在那里供用户自己测试.运行示例代码后,用户还可以检查输出文件是否确实在(/ Users/userName/myPackage/inst/extdata/OutputFiles)中创建.在遵循示例时,允许用户不必使用绝对路径的最佳方法是什么?是否可以只跟随包目录myPackage中的相对路径?
我的数据文件包含.csv,.htm和.text文件.在过去,在构建包时,我将数据框保存为.rda文件,然后用户可以简单地使用:
data(example.rda)
Run Code Online (Sandbox Code Playgroud)
阅读该文件.他们不必写整个途径.是否有类似的功能可用于读取.csv,.html和.text文件,然后将它们输出到示例输出位置 - 而不必使用完整路径?是否可以使用也读入输入文件并写入输出文件的帮助功能?如果/ man文件夹中的各种示例帮助函数将示例输出文件物理保存到示例输出文件夹,这是否会导致CRAN发生冲突?
我是编写R包的新手.我正在努力学习如何为我的包装制作一个小插图.我创建了一个带有"getting-started.Rmd"文件的vignettes文件夹
---
title: "WaterML Tutorial"
author: "Jiri Kadlec"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Introduction to the WaterML R package}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
## Quick Start
This simple example shows how to get started with the <my R package>.
Run Code Online (Sandbox Code Playgroud)
要构建插图,我使用命令:
devtools::build_vignettes()
Run Code Online (Sandbox Code Playgroud)
然后我跑Rcmd.exe INSTALL my_package
,并查看我的小插图我跑:
browseVignettes("my_package")
Run Code Online (Sandbox Code Playgroud)
但是我只看到html和源格式的小插图:
正如您在屏幕截图中看到的,没有"pdf"选项.如何配置我的.Rmd文件以pdf格式创建插图?
我已经为我的一个软件包编写了一个小插图形式的教程.
它工作正常,但它只创建小插图的html版本.有没有办法可以创建我的插图的html和pdf版本?
我试图在我的.Rmd文件的输出字段中附加rmarkdown :: pdf,但它没有用.
R包使用私有用户名和密码与商业数据库通信以建立连接.在package_vignette.Rmd文件中有一大块代码:
```{r, eval = TRUE}
# set user_name and password from user's configuration file
set_connection(file = "/home/user001/connection.config")
# ask data base for all metrics it has
my_data <- get_all_metrics()
# display names of fetched metrics
head(my_data$name)
```
Run Code Online (Sandbox Code Playgroud)
我无权向CRAN提供实际的用户名和密码,因此我无法在软件包中提供正版的"connection.config"文件.因此,当然,此代码片段在CRAN检查期间会导致错误.
我知道两种方法来解决CRAN检查:
第一种方式太耗时,因为有很多块,我经常重写/重建小插图.第二种方式对我来说更好.但可能有更好的模式如何支持这样的小插曲?例如,在包的测试中,我testthat::skip_on_cran()
用来避免CRAN检查.
我可以在pkg/doc文件夹中包含一些PDF以便该vignette
函数可以工作,但是不存在相应的Rnw,Rtex等吗?
我正在考虑包含用R块编织的降价文本的幻灯片或文档,它们具有不同的构建过程,因此具有不同的文件扩展名.
编写R扩展指南建议应该可以包含在安装时无法构建的文档,但该vignette
函数似乎寻找具有特殊扩展名(Rnw,Rtex等)的文件以及名为的文件vignette.rds
.
任何提示都表示赞赏.
我有一个小插图我的包编译成一个漂亮的PDF编译时Rscript -e 'rmarkdown::render("tmod.rmd")'
.但是,当我编译并安装软件包时,启动R并键入vignette("mypackagename")
,浏览器窗口打开时带有难看的HTML,没有标题,没有目录和没有引用.
但是,如果我在创建包之前手动将小插图编译为pdf,它会显示正常.
什么地方出了错?为什么编译包时我的PDF不会自动生成?
在markdown文件标题中,我有
---
title: "foo foo foo"
author: "Foofooary Finer"
date: "`r Sys.Date()`"
output:
pdf_document:
vignette: >
%\VignetteIndexEntry{FooFoo}
%\VignetteKeyword{foo}
%\VignetteEngine{knitr::knitr}
%\SweaveUTF8
\usepackage[utf8](inputenc)
abstract: |
foo foo foo foo foo
toc: yes
bibliography: bibliography.bib
---
Run Code Online (Sandbox Code Playgroud)
在包文件中,我有
VignetteBuilder: knitr
Suggests: knitr
Run Code Online (Sandbox Code Playgroud) 我有一个"Vignette Collab"
使用Java在Apache堆栈上运行的API ,我继承了遗留代码库,需要找到这个错误的来源,显然最后一个开发人员构建了一个不起作用的功能,这就是错误所在,但是没有更多信息.它使用Drupal webservice模块,发送调用的代码如下所示
$node = $variables['node'];
$service = wsclient_service_load('collab_folders');
if($node->field_oid1):
$param1 = $node->field_oid1['und'][0]['value'];
$params1 = array('user'=>'myUser','password'=>'myPass','oid'=>$param1);
$results1 = $service->getChildren($params1);
$variables['collabresults1'] = $results1;//
Run Code Online (Sandbox Code Playgroud)
任何想法,我可以开始寻找这个错误或它可能意味着什么?
完整的堆栈跟踪在这里:::
Run Code Online (Sandbox Code Playgroud)ecmtrtest1: http cmd: lookup, http-bio-81-exec-3, kmapi=true&properties=true&dtd=false&oid=1.59.93 Authentication
用户失败:null.java.lang.UnsupportedOperationException:com.intraspect.kmapi.client.KMDocument.getDocType(KMDocument.java:331)客户端尚未支持此方法,位于com.acuitys.ws.impl.CollabServiceImpl.populateProperties(CollabServiceImpl.java:236) )com.acuitys.ws.impl.CollabServiceImpl.getChildren(CollabServiceImpl.java:83)at com.acuitys.ws.CollabWebservice.getChildren(CollabWebservice.java:34)at sun.reflect.GeneratedMethodAccessor758.invoke(Unknown Source)at at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at com.sun.xml.ws.api.server.InstanceResolver $ 1.invoke(InstanceResolver .java:246)at com.sun.xml.ws.server.InvokerTube $ 2.invoke(InvokerTube.java:146)at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257) at com.sun.xml.ws.api.pipe.Fiber .__ doRun(Fiber.java:595)at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)at com.sun .xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)位于com.sun.xml.ws.api.pipe的com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539). Com.sun.xml.ws.server.WSEndpointImpl $ 2.process(WSEndpointImpl.java:243)上的Fiber.runSync(Fiber.java:436)位于com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter) .java:244)at com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle(HttpAdapter.java:444)at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter) .java:135)位于com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)的com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate) .java:160)在javax的javax.servlet.http.HttpServlet.service(HttpServlet.java:647)的com.sun.xml.ws.transport.http.servlet.WSSpringServlet.doPost(WSSpringServlet.java:52)中. Servlet.http.HttpServlet.service(HttpServlet.java:728)位于org.apache.catalina的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305).core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) )org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)org.apache.catalina.valves.ErrorReportValve.在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)的com.intraspect上的org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)中调用(ErrorReportValve.java:99) .valves.CollabWebDAVFixValve.invoke(CollabWebDAVFixValve.java:34)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) )org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProto)col.java:589)在java.util的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)的org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:310) .concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:724) [Apr …