如何列出 R 包的所有演示及其来源
How to list all demos and their sources of an R package
我想知道是否有一个特殊的命令来列出一个包的所有演示程序(R 脚本)并在没有 运行 的情况下检查它们的内容,即不使用
demo(name_of_demo_file)
特别是,我正在寻找一种无需下载源代码和浏览 demo 目录即可实现此目的的方法。
运行 demo(package = "stats")
显示演示列表。虽然该函数不允许您在没有 运行 的情况下访问代码,但您可以从包源中提取它。您不需要重新下载源代码,因为您已经安装了它,并且可以在 R 中使用 system.file
.
找到它
例如,您可以编写一个简短的函数:
print_demo_code <- function(demo, package) {
demo_file <- system.file("demo", paste0(demo, ".R"), package = package)
cat(readLines(demo_file), sep = "\n")
}
例如:
print_demo_code("nlm", package = "stats")
显示:
# Copyright (C) 1997-2009 The R Core Team
### Helical Valley Function
### Page 362 Dennis + Schnabel
require(stats); require(graphics)
theta <- function(x1,x2) (atan(x2/x1) + (if(x1 <= 0) pi else 0))/ (2*pi)
## but this is easier :
theta <- function(x1,x2) atan2(x2, x1)/(2*pi)
...
我想知道是否有一个特殊的命令来列出一个包的所有演示程序(R 脚本)并在没有 运行 的情况下检查它们的内容,即不使用
demo(name_of_demo_file)
特别是,我正在寻找一种无需下载源代码和浏览 demo 目录即可实现此目的的方法。
运行 demo(package = "stats")
显示演示列表。虽然该函数不允许您在没有 运行 的情况下访问代码,但您可以从包源中提取它。您不需要重新下载源代码,因为您已经安装了它,并且可以在 R 中使用 system.file
.
例如,您可以编写一个简短的函数:
print_demo_code <- function(demo, package) {
demo_file <- system.file("demo", paste0(demo, ".R"), package = package)
cat(readLines(demo_file), sep = "\n")
}
例如:
print_demo_code("nlm", package = "stats")
显示:
# Copyright (C) 1997-2009 The R Core Team
### Helical Valley Function
### Page 362 Dennis + Schnabel
require(stats); require(graphics)
theta <- function(x1,x2) (atan(x2/x1) + (if(x1 <= 0) pi else 0))/ (2*pi)
## but this is easier :
theta <- function(x1,x2) atan2(x2, x1)/(2*pi)
...