Поведение функции R зависит от того, где хранится функция, а также от того, как передаются параметры. - PullRequest
1 голос
/ 06 мая 2019

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

Пример:

##Code part 1:
some_function <- function(str, pattern, pattern1 = "УИК №[0-9]+"){
  cat(str_extract(str, pattern), "\n")
  cat(str_extract(str, pattern1), "\n")
  cat(str_extract(str, "УИК №[0-9]+"))
}

##Code part 2:
library(stringr)
some_function("УИК №221", pattern = "УИК №[0-9]+")

Теперь, если «Часть кода 1» хранится в том же R-файле, что и «Часть кода 2», все работает хорошо, и результат "УИК №221" "УИК №221" "УИК №221". Однако, если «Часть кода 1» хранится в другом R-файле, например, «functions.R», и я называю его в «Code part 2» через «source (functions.R)», затем эта функция печатает "УИК №221" Не Доступно NA. Кто-нибудь знает, почему это происходит?

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

например. с измененными частями кода Кодовая часть 1: some_function

Кодовая часть 2: библиотека (stringr) some_function ("UIK No221", pattern = "UIK No [0-9] +")

напечатанный результат в обоих случаях UIK №221 UIK №221 UIK № 221.

Идеи по этому поводу будут высоко оценены!

...