R函数的行为取决于函数的存储位置以及参数的传输方式

时间:2019-05-06 20:48:17

标签: r regex encoding parameter-passing cyrillic

我注意到我编写的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”与“代码部分2”存储在同一R文件中,则一切正常,结果是 “УИК№221” “УИК№221” “УИК№221”。 但是,如果“代码部分1”存储在另一个R文件中,例如“ functions.R”,然后通过“ source(functions.R)”在“代码部分2”中调用它,然后此函数打印 “УИК№221” 不适用 不适用 有谁知道为什么会这样吗?

如果不使用西里尔字母,则函数存储在哪个文件中以及参数的传输方式都没有关系。

例如与更改的代码部分 代码第1部分: some_function <-function(str,pattern,pattern1 =“ UIK No [0-9] +”){   cat(str_extract(str,pattern),“ \ n”)   cat(str_extract(str,pattern1),“ \ n”)   cat(str_extract(str,“ UIK No [0-9] +”)) }

代码第2部分: 库(字符串) some_function(“ UIK No221”,pattern =“ UIK No [0-9] +”)

在两种情况下都显示打印结果 UIK No221 UIK No221 UIK No221。

对此,我们将不胜感激!

0 个答案:

没有答案