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 に正規表現を渡せばパターンマッチで絞り込みができます。