创建中的R的函数与一个参数,其输入以数字开始(Creating a function in R wi

2019-10-19 06:55发布

我道歉,如果这已经回答了什么地方,但我不能在任何地方找到它类似的问题。

我想创建一个函数,其中的输入参数之一可能是(但不一定),它以数字开头的字符串。 当我尝试运行该功能,R感到困惑。

例如:

foo(df, 10, 5fum)

给我的错误:

错误:意外符号“do_cv_class(数据,10,5fum”

在功能我打算采取"5fum" ,并将其解析为2个参数"5""fum" 。 我并不想创建一个第四个参数分离5和FUM。

有任何想法吗? 在这个伟大的会任何帮助。

Answer 1:

正如上述言论表明,你需要通过"5fum"作为一个字符串。 而无需重写的r分析器,它几乎是不可能想到的一种方式, foo(df, 10, 5fum)可能是合法的输入。 想必你想是这样的:

foo <- function(df, num1, str1) {
   str1_num <- as.numeric(gsub("([0-9]+)([[:alpha:]]+)","\\1",str1))
   str1_alpha <- gsub("([0-9]+)([[:alpha:]]+)","\\2",str1)
   print(str1_num)
   print(str1_alpha)
}

foo(df, 10, "5fum")
## [1] 5
## [1] "fum"

(我以为传递参数,就像这样~5fum可能会奏效,因为~防止被立即计算后续的符号,但它并不:符号5fum仍然需要进行解析。)



文章来源: Creating a function in R with an argument whose inputs begin with a number