R中的Custom .Primitive函数

时间:2019-01-03 10:09:32

标签: r

我在R中认识*+* <- function(x,y){ x + y}

但是如果我想编写类似.print的函数。

然后我可以使用print(iris)来显示iris.print

如何在R中自定义函数?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用R的R3类。

一个简单的例子。假设我们有一个新的数据类型---一个向量,我们希望将其打印为以逗号分隔的字符串。

x <- c(1, 2, 3)
# Assign a class attribute. The first element is the class of the object;
# the second element is the parent class
class(x) <- c("Foo", "numeric")
# Define the print method
print.Foo <- function(x) {
  cat(paste(x, collapse = ", "), "\n")
}
# The method is called just like this
print(x)