gpt4 book ai didi

r - 在 R 中添加对象(如 ggplot 层)

转载 作者:行者123 更新时间:2023-12-03 16:29:20 24 4
gpt4 key购买 nike

我正在做 OOP R 并且想知道如何使它如此+可用于将自定义对象添加到一起。我发现的最常见的例子是 ggplot2将几何图形添加到一起。

我通读了 ggplot2源代码并找到了这个

https://github.com/hadley/ggplot2/blob/master/R/plot-construction.r

它看起来像 "%+%"正在使用,但尚不清楚它最终如何转化为普通 +运算符(operator)。

最佳答案

你只需要为泛型函数定义一个方法 + . (在您问题中的链接中,该方法是 "+.gg" ,旨在由类 "gg" 的参数调度)。 :

## Example data of a couple different classes
dd <- mtcars[1, 1:4]
mm <- as.matrix(dd)

## Define method to be dispatched when one of its arguments has class data.frame
`+.data.frame` <- function(x,y) rbind(x,y)

## Any of the following three calls will dispatch the method
dd + dd
# mpg cyl disp hp
# Mazda RX4 21 6 160 110
# Mazda RX41 21 6 160 110
dd + mm
# mpg cyl disp hp
# Mazda RX4 21 6 160 110
# Mazda RX41 21 6 160 110
mm + dd
# mpg cyl disp hp
# Mazda RX4 21 6 160 110
# Mazda RX41 21 6 160 110

关于r - 在 R 中添加对象(如 ggplot 层),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16804658/

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