pkginfo <- function(pkgname, pattern) {
envir <- as.environment(paste0("package:", as.character(substitute(pkgname))))
objnames <- ls(envir=envir, pattern=pattern)
classnames <- unlist(lapply(objnames, function(x) as.vector(class(get(x, envir=envir)))[1]))
sizes <- unlist(lapply(objnames, function(x) as.vector(object.size(get(x, envir=envir)))[1]))
data.frame(class=classnames, size=sizes, row.names=objnames)
}
仕様
指定したパッケージのオブジェクトの一覧を表示します。オブジェクト名とクラス名、サイズ(bytes) の3列からなる表形式で表示します。実際はデータフレームを返しているので、加工することも可能です。pattern を指定すれば、名前がマッチするオブジェクトのみ取り出されます。
使用例
> library(nnet)
> pkginfo(nnet)
class size
class.ind function 32224
multinom function 706928
nnet function 1240
nnet.default function 319984
nnet.formula function 224528
nnetHess function 81472
which.is.max function 10792
検索リスト上に無いといけないので、library() で読み込んである必要があります。
> head(pkginfo(datasets), 10)
class size
ability.cov list 2136
airmiles ts 656
AirPassengers ts 1616
airquality data.frame 5632
anscombe data.frame 2592
attenu data.frame 15648
attitude data.frame 3176
austres ts 1176
beaver1 data.frame 4736
beaver2 data.frame 4288
戻り値はデータフレームなので、head() などで加工も可能です。
> pkginfo(datasets, "[cC][oO]2")
class size
co2 ts 4208
CO2 nfnGroupedData 9976
第2引数の pattern に正規表現を渡せばパターンマッチで絞り込みができます。