Запуск и отладка скрипта и функции в R - PullRequest
16 голосов
/ 29 декабря 2010

Я новичок. У меня есть R-файл, содержащий функцию с параметром. Я хотел бы выполнить две следующие разные операции:

  1. Запустить функцию
  2. Выполнить шаг за шагом и отладить его

предположим, что в R-файле есть простая функция

"exampleSum"<-
function(x,y){
 x<-x+1
 return(x+y)
}

Не могли бы вы сказать мне, какие команды R выполняют то, что я просил.

Ответы [ 2 ]

27 голосов
/ 29 декабря 2010

Вы должны вызвать debug(<functionName>), чтобы пройти через функцию.При следующем вызове этой функции автоматически откроется так называемая среда браузера и отобразится список содержимого вашей функции.Вы выполняете один шаг нажатием Return или командой n (далее).Один шаг - это один блок (обычно одна строка), который будет указан перед его запуском.Чтобы запустить функцию до конца, нажмите c (продолжить).Когда вы находитесь в режиме браузера, вы можете использовать ls(), str(), class(), ... для проверки объектов.Ваш пример выглядит следующим образом:

> exampleSum <- function(x, y) {
+   x <- x+1
+   return(x+y)
+ }

> debug(exampleSum)             # set debug flag
> exampleSum(1, 2)              # run function in browser mode
debugging in: exampleSum(1, 2)
debug: {
    x <- x + 1
    return(x + y)
}
Browse[2]> n                    # next step
debug: x <- x + 1
Browse[2]> ls()                 # show objects
[1] "x" "y"
Browse[2]> x                    # show x
[1] 1
Browse[2]> c                    # run function to end
exiting from: exampleSum(1, 2)
[1] 4

> undebug(exampleSum)           # remove debug flag

Последний вызов undebug(<functionName>) удаляет флаг отладки из функции, так что он будет запускаться нормально при следующем вызове.

1 голос
/ 29 декабря 2010

Сначала необходимо загрузить функцию в рабочее пространство R (скопировав / вставив ее в R). Затем вы можете запустить его, используя exampleSum(x = 1, y = 1). Вы можете проверить это, набрав exampleSum в консоли R. Вы также можете запустить файл сценария, используя source(). Пример использования будет source("d:/R/my_script.R").

Я думаю, вы получили бы огромную пользу, прочитав хотя бы Введение в R . Существует также множество книг, доступных для начинающих R, которые объясняют самые основы. Эквивалентная информация доступна в вышеупомянутом AI2R и бесплатных материалах, распространяющихся по Интернету. Поиск в списке R help также ... полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...