【问题标题】:Error in Lyx call to Rscript [closed]Lyx 调用 Rscript 时出错 [关闭]
【发布时间】:2013-06-09 15:08:40
【问题描述】:

我在 OS X (10.8.3) 和 R (3.01) 上使用 Lyx (2.06)。我正在尝试将 knitr 文件导入 Lyx。 Lyx 能够找到 Rstudio,但 Rscript 在 setwd 命令上失败。 Lyx 的错误日志如下。任何帮助将非常感激。 (我在 Stackoverflow 上的第一篇文章。对于任何尴尬的格式,请提前道歉。)

10:43:17.114: Importing ~/Documents/Temp/stest.lyx...
10:43:17.122: Rscript --verbose --no-save --no-restore "/Applications/LyX.app/Contents/Resources/scripts /lyxknitr.R" "/Users/wms5f/Documents/Temp/""stest.Rnw" "/Users/wms5f/Documents/Temp/""stest.tex"  "/Users/wms5f/Documents/Temp/"
10:43:17.124: running
10:43:17.125:   '/Library/Frameworks/R.framework/Versions/3.0/Resources/bin/R --slave --no-restore --no-save --no-restore --file=/Applications/LyX.app/Contents/Resources/scripts/lyxknitr.R --args /Users/wms5f/Docu
10:43:17.126: ments/Temp/stest.Rnw /Users/wms5f/Documents/Temp/stest.tex'
10:43:17.126: 
<.snip.>
10:43:18.424: 
10:43:18.603: Package `sm', version 2.2-5: type help(sm) for summary information
10:43:20.609: Error in setwd(.cmdargs[4]) : missing value is invalid
10:43:20.610: Execution halted

Running: Rscript --verbose --no-save --no-restore "/Applications/LyX.app/Contents/Resources/scripts/lyxknitr.R" "/Users/wms5f/Documents/Temp/""stest.Rnw" "/Users/wms5f/Documents/Temp/""stest.tex"  "/Users/wms5f/Documents/Temp/"
support/Systemcall.cpp (273): Systemcall: 'Rscript --verbose --no-save --no-restore "/Applications/LyX.app/Contents/Resources/scripts/lyxknitr.R" "/Users/wms5f/Documents/Temp/""stest.Rnw" "/Users/wms5f/Documents/Temp/""stest.tex"  "/Users/wms5f/Documents/Temp/"' finished with exit code 1
Error: Cannot convert file

An error occurred while running:
Rscript --verbose --no-save --no-restore
"/Applications/LyX.app/Contents/Resources/scripts/lyxknitr.R"
"/Users/wms5f/Documents/Temp/""stest.Rnw"
"/Users/wms5f/Documents/Temp/""stest.tex"  "/Users/wms5f/Documents/Temp/"
10:43:55.912: file not imported!
10:43:55.913: (buffer-import knitr)
10:44:04.097: (dialog-show prefs: ⌘,)

添加说明:

我在最初的帖子中可能不是很清楚。我有一个名为 stest.Rnw 的文件,其中包含以下 sweave 代码:

\documentclass{article}
\begin{document}

Test

\end{document}

如果我尝试使用 Import -&gt; Rnw (knitr) 选项将此文件导入 Lyx 2.06,Lyx 会生成以下系统命令:

Rscript --verbose --no-save --no-restore "/Applications/LyX.app/Contents/Resources/scripts/lyxknitr.R" "/Users/wms5f/Documents/Temp/""stest2.Rnw" "/Users/wms5f/Documents/Temp/""stest2.tex"  "/Users/wms5f/Documents/Temp/"

当从 bash 提示符以及从 Lyx 中运行时,此命令会失败。我注意到额外的双引号,但在运行脚本之前删除它们会得到相同的结果。 Rscript 似乎无法解析第四个参数,它只是一个目录。 R 永远无法解析 sweave,因为它在初始解析 Lyx 传递给它的参数时失败了。至少这是我阅读错误消息的方式。

我希望这会有所帮助。

【问题讨论】:

  • 我会注意以下几行:10:43:20.609:setwd(.cmdargs[4]) 中的错误:缺失值无效 10:43:20.610:执行停止。您的脚本是否在 R 中运行?您是否考虑了 Lyx 中的新环境(没有对象,除非您加载/创建它们)。
  • 我已经看到两票接近(不是我的),可能是因为没有提供 R 代码进行测试。我想看一个有效的例子。也许搜索 SO:[r] [lyx] 会推动事情发展?或者看看早期的解决方案是否有效:stackoverflow.com/questions/16707907/… OR stackoverflow.com/questions/14949036/…
  • 我添加了一些说明,希望能解决您的 cmets。
  • 我不认为这个问题是题外话。它反映了 LyX 中一个长期存在的问题——对导入 literate 编程文档的支持。

标签: r knitr lyx


【解决方案1】:

您试图将一个 Rnw 文件导入到 LyX,但 LyX 2.0.6 尚不支持。预定出现在LyX 2.1:http://www.lyx.org/trac/ticket/7838

LyX 2.1 发布后,可以通过命令行导入:

tex2lyx -n -m knitr stest.Rnw

我不确定为什么 LyX 在导入文件时需要调用 Rscript。您可能需要向 LyX 提交错误报告。

【讨论】:

  • 看到我在 LyX 2.1 beta2 中遇到了同样的问题,我想这个功能还没有实现吗?
  • @RoyalTS 对不起,我不知道。我还没有测试 2.1 beta。
猜你喜欢
  • 2016-11-21
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2017-06-08
相关资源
最近更新 更多