如何更改R CMD swave的输出目录?
使用R CMD swave,我的.tex文件总是在我的主目录中生成。有可能改变这个吗?我的意思是我可以用一个shell脚本来mv它,但我想有更好的技巧来做 @德克: 我使用了我发布的脚本,pdflatex找不到该文件,因为它总是写入用户的主目录 嗯?它总是在当前工作目录中。所以试试看如何更改R CMD swave的输出目录?,r,sweave,R,Sweave,使用R CMD swave,我的.tex文件总是在我的主目录中生成。有可能改变这个吗?我的意思是我可以用一个shell脚本来mv它,但我想有更好的技巧来做 @德克: 我使用了我发布的脚本,pdflatex找不到该文件,因为它总是写入用户的主目录 嗯?它总是在当前工作目录中。所以试试看 而which.tex现在将成为~/foo,因为这是您a)放置源代码并b)调用命令的地方。下面是对我有效的方法。。。没有R CMD swave的参数,但仍然是一个解决方法。 basename和dirname的使用帮助
而
which.tex
现在将成为~/foo
,因为这是您a)放置源代码并b)调用命令的地方。下面是对我有效的方法。。。没有R CMD swave的参数,但仍然是一个解决方法。
basename和dirname的使用帮助很大:)
#/bin/bash
myfile=$(/usr/bin/osascript只需编辑我的问题以指向链接中的脚本。脚本将打开一个对话框,我可以在其中选择.Rnw文件(Mac OSX)。然后您可能会有一个该脚本和/或您的路径有问题,b)一个措辞特别糟糕的问题,如R CMD swave
,没有错。我不是在责备R CMD swave
:)。虽然如果有输出目录的参数,我可以使用它而不是文件。事实上,问题是$myfile是从osascript返回的整个posix路径,我无法正确地拆分它。但是我必须拆分的唯一原因是因为我需要到处移动东西(因为R CMD)。@Dirk,这很奇怪,因为在我的R代码中,我从来没有使用HOME作为wd。我第一次甚至能够让这个代码与鸭嘴兽一起工作。
mkdir foo
mv whatever.Rnw foo
cd foo
R CMD Sweave whatever.Rnw
#!/bin/bash
myfile=$(/usr/bin/osascript << EOT
tell app "AppleScript Runner"
activate
return posix path of (choose file)
end
EOT)
if [ $? -eq 0 ]
then
echo $myfile
R CMD Sweave $myfile
no_ext=`basename $myfile .Rnw`
directory=`dirname $myfile`
mv ~/$no_ext.tex $directory/$no_ext.tex
/usr/local/texlive/2009/bin/universal-darwin/pdflatex -output-directory $directory $no_ext.tex
open $directory/$no_ext.pdf
else
echo "User canceled"
fi