首页 > 解决方案 > R - 函数等于函数

问题描述

我的问题很难搜索,因为我只是遇到了“equals”函数的 API!

如果我有以下行,请处理矩阵Gl

diag(Gl)=diag(Gl)+1

这相当于修改Gl自己吗?

标签: r

解决方案


是的,这是修改Gl in place的对角线。这是一个被称为替换函数的中度晦涩的 R 语言特性示例。来自R 语言手册(第 3.4.4 节,关于 的等效操作names):

相同的机制可以应用于除 之外的功能[。替换函数与 paste 同名<-。它的最后一个参数(必须调用value)是要分配的新值。例如,

names(x) <- c("a","b")

相当于

   `*tmp*` <- x
   x <- "names<-"(`*tmp*`, value=c("a","b"))
   rm(`*tmp*`)

(对不起格式化)。您可以打印该`diag<-`函数以查看(将名称括在反引号中` `),这样解析器就不会混淆,或者getAnywhere("diag<-")


推荐阅读