R 如何使用plot函数绘制自己函数的结果?
我正在写一个包含函数的短R包。该函数返回向量列表。我想使用plot函数,以便在默认情况下绘制一个使用其中一些向量完成的绘图,添加线并添加一个新参数 例如,如果我使用R 如何使用plot函数绘制自己函数的结果?,r,function,plot,R,Function,Plot,我正在写一个包含函数的短R包。该函数返回向量列表。我想使用plot函数,以便在默认情况下绘制一个使用其中一些向量完成的绘图,添加线并添加一个新参数 例如,如果我使用survival包,我可以得到以下信息: library(survival) data <- survfit(Surv(time, status == 2) ~ 1, data = pbc) plot(data) # Plots the result of survfit plot(data, conf.int = "non
survival
包,我可以得到以下信息:
library(survival)
data <- survfit(Surv(time, status == 2) ~ 1, data = pbc)
plot(data) # Plots the result of survfit
plot(data, conf.int = "none") # New parameter
库(生存)
数据我想你可能在找课程。您可以使用S3系统来实现这一点
对于您的survival
示例,data
具有classsurvfit
(请参见class(data)
)。然后使用plot(data)
将查找名为plot.survfit
的函数。这实际上是survival
包中的一个非导出函数,位于survival:::plot.survfit
你可以很容易地为你的包裹做同样的事情。例如,使用一个函数创建类为“my_class”的对象,然后定义该类的打印方法:
f <- function(x, y){
b <- x^2
c <- y^2
d <- x+y
r <- list(one = b, two = c, three = d)
class(r) <- c('list', 'my_class') # this is the important bit.
r
}
plot.my_class <- function(x) {
plot(x$one, x$two)
}
f我想你可能在找课程。您可以使用S3系统来实现这一点
对于您的survival
示例,data
具有classsurvfit
(请参见class(data)
)。然后使用plot(data)
将查找名为plot.survfit
的函数。这实际上是survival
包中的一个非导出函数,位于survival:::plot.survfit
你可以很容易地为你的包裹做同样的事情。例如,使用一个函数创建类为“my_class”的对象,然后定义该类的打印方法:
f <- function(x, y){
b <- x^2
c <- y^2
d <- x+y
r <- list(one = b, two = c, three = d)
class(r) <- c('list', 'my_class') # this is the important bit.
r
}
plot.my_class <- function(x) {
plot(x$one, x$two)
}
f没有dat$a
,更不用说plot$b
,想要的结果图是什么?为什么像myplot这样的自定义函数我指的是dat$one和dat$two(已编辑),我知道如何制作自己的函数,但我想知道这是否可能(而且容易),因为我认为这是一种更直观的行为。试试plot(data.frame(dat[1:2])
没有dat$a
,更不用说plot$b
,想要的结果图是什么?为什么像myplot这样的自定义函数我指的是dat$one和dat$two(已经编辑过),我知道如何制作自己的函数,但我想知道这是否可能(也很容易),因为我认为这是一种更直观的行为。尝试plot(data.frame(dat[1:2])
dat <- f(3, 2)
plot(dat)