Как я могу изменить выходной каталог R CMD Sweave?

Используя R CMD Sweave, мой файл .tex всегда создается в моем домашнем каталоге. Можно ли это изменить? Я имею в виду, что я мог бы сделать это с помощью сценария оболочки, но я думаю, что есть лучший трюк, чтобы сделать это

@Dirk: я использовал скрипт, который разместил здесь и pdflatex не находит файл, потому что он всегда записывается в домашнюю директорию моего пользователя.


person Matt Bannert    schedule 18.08.2010    source источник


Ответы (2)


Хм? Он всегда находится в текущем рабочем каталоге. Так что постарайтесь

 mkdir foo
 mv whatever.Rnw foo
 cd foo
 R CMD Sweave whatever.Rnw

и whatever.tex теперь будет ~/foo, потому что именно здесь вы а) поместили исходный код и б) вызвали команду.

person Dirk Eddelbuettel    schedule 18.08.2010
comment
просто отредактируйте мой вопрос, чтобы указать на скрипт в ссылке. Сценарий открывает диалоговое окно, в котором я могу выбрать файл .Rnw (Mac OSX). - person Matt Bannert; 18.08.2010
comment
Тогда у вас может быть а) проблема с этим сценарием и/или вашим путем и б) особенно плохо сформулированный вопрос, поскольку R CMD Sweave не виноват. - person Dirk Eddelbuettel; 18.08.2010
comment
Я не виню R CMD Sweave :) . Хотя, если бы был аргумент для выходного каталога, я мог бы использовать его вместо «mv» файлов. На самом деле проблема в том, что $myfile - это весь путь posix, возвращаемый из osascript, и у меня возникают проблемы с его правильным разделением. Но единственная причина, по которой мне приходится разделяться, заключается в том, что мне нужно что-то менять (из-за R CMD). - person Matt Bannert; 18.08.2010

Итак, вот что сработало для меня ... Нет аргументов в пользу R CMD Sweave, но все же обходной путь. использование basename и dirname очень помогло :)

#!/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
person Matt Bannert    schedule 18.08.2010
comment
@Dirk, это странно, потому что в моем R-коде я никогда не использую HOME как wd. - person Matt Bannert; 18.08.2010
comment
Впервые мне даже удалось заставить этот код работать с утконосом. - person Matt Bannert; 18.08.2010