找回密码
 立即注册
查看: 3267|回复: 1

怎样查看函数名末尾为*的函数源代码

[复制链接]
发表于 2013-9-3 10:39:06 | 显示全部楼层 |阅读模式
最直接的方法当然是直接键入函数,大部分函数源代码就可以直接显现出来
> fivenum
function (x, na.rm = TRUE)
{
    xna <- is.na(x)
    if (na.rm)
        x <- x[!xna]
    else if (any(xna))
        return(rep.int(NA, 5))
    x <- sort(x)
    n <- length(x)
    if (n == 0)
        rep.int(NA, 5)
    else {
        n4 <- floor((n + 3)/2)/2
        d <- c(1, n4, (n + 1)/2, n + 1 - n4, n)
        0.5 * (x[floor(d)] + x[ceiling(d)])
    }
}
<bytecode: 0x01f32270>
<environment: namespace:stats>
还有些函数直接键入出不来源代码,主要是因为R是面向对象设计的程序语言,不同的对象,计算方式也不同,所以要通过methods()来进一步定义具体的查看对象
> mean
function (x, ...)
UseMethod("mean")
<bytecode: 0x019a54e4>
<environment: namespace:base>
不行,用methods查看
> methods(mean)
[1] mean.data.frame mean.Date       mean.default    mean.difftime  
[5] mean.POSIXct    mean.POSIXlt  
任意选择一个进行查看
> mean.data.frame
function (x, ...)
{
    msg <- "mean(<data.frame>) is deprecated.\n Use colMeans() or sapply(*, mean) instead."
    warning(paste(msg, collapse = ""), call. = FALSE, domain = NA)
    sapply(X = x, FUN = mean, ...)
}
<bytecode: 0x0260c92c>
<environment: namespace:base>
但有的函数如var.test():
> methods(var.test)
[1] var.test.default* var.test.formula*
   Non-visible functions are asterisked
会出现末尾带*号的函数,这种该如何查看源代码?请高手赐教

回复

使用道具 举报

发表于 2013-9-6 17:06:07 | 显示全部楼层
好东西,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 07:53 , Processed in 0.022800 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表