gpt4 book ai didi

r - R中单引号中的函数名称

转载 作者:行者123 更新时间:2023-12-04 23:00:41 26 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我已经困扰了很长一段时间。我见过人们在定义函数时使用单引号将函数名括起来。我一直想知道这样做的好处。下面是一个简单的例子

'row.mean' <- function(mat){
return(apply(mat, 1, mean))
}

提前致谢!

最佳答案

违背理查德的假设,反引号允许您在通常不允许的名称中使用符号。看:

`add+5` <- function(x) {return(x+5)}

定义一个函数,但是
add+5 <-  function(x) {return(x+5)}

返回
Error in add + 5 <- function(x) { : object 'add' not found

要引用该函数,您还需要明确使用反引号。
> `add+5`(3)
[1] 8

要查看此函数的代码,只需在不带参数的情况下调用它:
> `add+5`
function(x) {return(x+5)}

另请参阅此评论,该评论处理名称分配中反引号和引号之间的区别: https://stat.ethz.ch/pipermail/r-help/2006-December/121608.html

请注意,反勾号的使用更为普遍。例如,在数据框中,您可以使用整数命名的列(可能来自对整数因子使用 reshape::cast)。

例如:
test = data.frame(a = "a", b = "b")
names(test) <- c(1,2)

要检索这些列,您可以将反引号与 $ 结合使用。运算符,例如:
> test$1
Error: unexpected numeric constant in "test$1"


> test$`1`
[1] a
Levels: a

有趣的是,您不能在分配数据框列名称时使用反引号;以下不起作用:
test = data.frame(`1` = "a", `2` = "b")

为了回应 statechular 的评论,这里是另外两个用例。

在修复函数中

使用 %我们可以天真地定义向量之间的点积符号 xy :
`%.%` <- function(x,y){

sum(x * y)

}

这使
> c(1,2) %.% c(1,2)
[1] 5

更多信息,请参见: http://dennisphdblog.wordpress.com/2010/09/16/infix-functions-in-r/

替换功能

这是一个很好的答案,展示了这些是什么: What are Replacement Functions in R?

关于r - R中单引号中的函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25902925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com