Как войти в область действия функции? [Дубликат]

Вам просто нужно написать свою собственную функцию, которая читает csv и добавляет нужный столбец, прежде чем объединять их.

my_read_csv <- function(x) {
  out <- read_csv(x)
  site <- str_extract(x, "[A-Z]{2}-[A-Za-z0-9]{3}")
  cbind(Site=site, out)
}

filenames <- list.files(path, full.names = TRUE, pattern = fileptrn, recursive = TRUE)
tbl <- lapply(filenames, my_read_csv) %>% bind_rows()
16
задан Paul Hiemstra 30 January 2012 в 17:37
поделиться

2 ответа

Вы должны вызвать 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>) удаляет флаг отладки из функции таким образом, что он будет запускаться нормально при следующем вызове.

26
ответ дан caracal 4 September 2018 в 08:49
поделиться

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

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

1
ответ дан Roman Luštrik 4 September 2018 в 08:49
поделиться