簡體   English   中英

R中不同類型函數之間的差異

[英]Differences between different types of functions in R

我很感激幫助理解R中幾種類型函數之間的主要區別。

在不同類型的函數的定義中,我有點不知所措,並且已經變得有些難以理解不同類型的函數如何彼此相關。

具體來說,我對以下類型的函數之間的關系和差異感到困惑:

  1. Generic或Method :基於輸入參數的類,通過使用Method Dispatch調用適當的方法函數的泛型函數。

  2. 隱形與可見

  3. 原始與內在

我對這些不同類型的函數如何相互關聯(如果有的話)以及它們之間的各種差異和重疊感到困惑。

這里有一些關於原始與內部的文檔: http//www.biosino.org/R/R-doc/R-ints/_002eInternal-vs-_002ePrimitive.html

泛型是可以應用於類對象的通用函數。 每個類都使用特定的方法編寫,然后設置為通用。 因此,您可以使用“methods”函數查看與通用調用關聯的特定方法:

methods(print)

這將列出與通用“print”相關的所有方法。 或者,您可以查看給定類在此調用中具有的所有泛型

methods(,"lm")

其中lm是類線性模型。 這是一個例子:

x <- rnorm(100)
y <- 1 + .4*x + rnorm(100,0,.1)
mod1 <- lm(y~x)
print(mod1)
Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
       1.002        0.378  

print.lm(mod1)
Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
       1.002        0.378  

print(mod1)(通用調用)和print.lm(mod1)(對類的方法調用)都做同樣的事情。 為什么R這樣做? 我真的不知道,但正如我所理解的那樣,這就是方法與通用之間的區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM