Аргументы командной строки R script

#r

#r

Вопрос:

Я очень новичок в R и пробую несколько вещей. Я сталкиваюсь с ошибкой, когда я пытаюсь напечатать аргументы командной строки с сообщением. Я пытался найти какую-либо помощь через Интернет, но все еще вижу ошибку

 args = commandArgs(trailingOnly=TRUE)

cat(args, sep = "n")
# test if there is at least one argument: if not, return an error
if (length(args) !=1 ) {
  stop("Need data param(YYYYMMDD)", call.=FALSE)
}


ext <- args[1]
print("Running R model for date:", ext)
  

Ошибка

 Error in args[1] : object of type 'closure' is not subsettable
Execution halted
  

Комментарии:

1. Как вы вызываете скрипт?

2. Имя_скрипта Rscript 20200808

3. Я не могу воспроизвести это.. Но ваша ошибка предполагает, что args это функция. По какой-то причине он не видит ваше объявление в первой строке. Просто из любопытства — можете ли вы попробовать переименовать args во что-то вроде argz ?

4. Я также не смог воспроизвести. Скрипт выдал ошибку в строке печати и потребовал установить параметры digits и quite.

Ответ №1:

Итак, R — объектно-ориентированный язык. Когда вы сталкиваетесь с подобной ошибкой, это потому, что вы пытаетесь подмножество (подмножество означает использование квадратных скобок — [] для извлечения элемента этого объекта) функции. Итак, объект, который вы пытаетесь подмножествовать, является функцией, а не символьным вектором аргументов.

В R у нас есть базовая функция, называемая args(). Так что, возможно, случилось то, что вы забыли создать объект «args» перед выполнением приведенного ниже кода строки. Когда вы не создаете объект args, R, выполните поиск встроенной функции args(), именно тогда появляется ошибка.

 ext <- args[1]