Я заметил странное поведение функции 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.
Идеи по этому поводу будут высоко оценены!