У меня есть стандартная процедура анализа данных, которую мне нужно запустить на различных (~ 50 наборах данных). Я разрабатывал его в течение некоторого времени, и теперь я дошел до того, что хотел бы превратить его в функцию, которая берет набор данных и выдает какую-то разумную таблицу для каждого набора данных. Однако выполненная процедура охватывает четыре файла сценария, и до сих пор я использовал source
от одного к другому для ее запуска, но кажется, что это невозможно с function
.
У меня есть следующая проблема:
foo <- function(data) {
a <- somevariable
source("..somefile..") #The code in there uses a, but a is not in the workspace...
..
continue
..
}
Код дает сбой, когда вы запускаете его в наборе данных.
Есть ли какой-нибудь способ (команда), который просто скопировал бы команды из других файлов во время компиляции (не знаю, как я мог бы назвать это по-другому, даже если это не настоящая компиляция) функции? Я знаю, что могу просто скопировать и вставить это сам, но я бы предпочел этого не делать, потому что различные шаги включают оценки нейронных сетей и ARFIMA, которые я хотел бы сохранить в отдельных файлах для удобочитаемости кода. В любом случае, после копирования-вставки функция будет состоять примерно из 200 строк кода, что определенно не удобно для пользователя...
Спасибо
source
, аргументами функции? Похоже, вы близки к тому моменту, когда вам нужно начать формализовать вещи как функции, выполняющие определенные задачи, и, возможно, создать из них небольшой пакет (или, по крайней мере, получить все свои функции, а затем использовать их в других функциях). - person Bryan Hanson   schedule 20.02.2013..some file..
необходимо записать как функцию, чтобы аргументы можно было заменять, и они не должны были иметь одинаковые имена во всех контекстах. Ясно, что среда исходной функции не совпадает с вызывающей функцией, иначе вы не получили бы ту ошибку, которую делаете. Исправление проблемы с окружением потребует больше работы и больше подвержено ошибкам, чем просто кусание пули и переписывание исходных скриптов как функций. - person Bryan Hanson   schedule 20.02.2013Rnw
и использоватьsweave
илиknitr
для анализа (без источника, просто включите полный код в фрагменты кода). Преимущество этого заключается в возможности писать хорошие отчеты и графики, если это важно. - person Bryan Hanson   schedule 20.02.2013