Я пишу сценарий R, который я буду запускать как скрипт из командной строки. Я передаю аргументы командной строки сценария с помощью ключевых слов следующим образом:Разбор строки в R
myscript.R --arg1 = 100 --arg2 = «привет» --arg3 = 3,14159
Я хочу написать функцию R, что вернет значения командной строки в словарь, подобный объекту (т. е. список списков в R), заполняя неподдерживаемые аргументы значениями по умолчанию.
, например.
parseArguments <- function() {
options <- commandArgs(TRUE)
# options now contains "--arg1=100 --arg2='hello' --arg3=3.14159"
# parse string held in variable named options and stuff into a list
# .... Do some string manip ....
args <- list()
args['arg1'] <- 100
args['arg2'] <- 'hello'
args['arg3'] <- 3.14159
args['arg4'] <- 123 # Not found in parsed line so we use a hard coded default
return (args)
}
Может кто-то помочь заполнить пробелы?
А, я рад, что я спросил здесь - мне потребовалось бы навсегда придумать это решение. Один быстрый вопрос - относительно значений по умолчанию для аргументов, не указанных. Пример, который я дал, немного надуман. Из приведенного фрагмента не ясно, как определить, какие аргументы не были указаны в командной строке, чтобы можно было заменить значения по умолчанию. Не могли бы вы прояснить это? Благодаря! –
Внутри функции вы можете использовать ls(), чтобы узнать, какие объекты существуют локально. Вы можете перебрать все локальные объекты в виде имен в записи arg и использовать get() для предоставления значений. Я добавлю код. –
Спасибо. Множество интересных новых вещей для меня. Не уверен, что я все понимаю (много магии продолжается), но я надеюсь научиться из кода. –