R パッケージを作成している場合は、関数を自分の名前空間importFrom(plyr,colwise)
に選択的にインポートするために使用できます。colwise()
コマンドラインでインタラクティブにコードを実行している場合、同様に行う方法はありますか?
大まかな解決策の 1 つは、パッケージをロードするが何もインポートせず、foo <- pkg::foo
手動でインポートするための一連の割り当てを作成することですが、そもそもインポートせずにロードする方法がわかりません。
R パッケージを作成している場合は、関数を自分の名前空間importFrom(plyr,colwise)
に選択的にインポートするために使用できます。colwise()
コマンドラインでインタラクティブにコードを実行している場合、同様に行う方法はありますか?
大まかな解決策の 1 つは、パッケージをロードするが何もインポートせず、foo <- pkg::foo
手動でインポートするための一連の割り当てを作成することですが、そもそもインポートせずにロードする方法がわかりません。
パッケージから同じいくつかの関数を繰り返し使用したい場合、最もクリーンな解決策は、それらの関数だけを含むパッケージを作成してロードすることです。
## Set up package source directory
dummy <- "" ## Need one object with which to initiate package skeleton
package.skeleton("dummy", "dummy")
## Clean up the man subdirectory
lapply(dir("dummy/man", full.names=TRUE), file.remove)
## Use NAMESPACE to pull in the functions you want
funs <- c("aaply", "ddply", "adply")
cat(paste0("importFrom(plyr, ", paste(funs, collapse=", "), ")"),
paste0("export(", paste(funs, collapse=", "), ")"),
file = "dummy/NAMESPACE",
sep = "\n")
## install the package
library(devtools)
install("dummy")
## Confirm that it worked
library(dummy)
ls(2)
# [1] "aaply" "adply" "ddply"
environment(aaply)
# <environment: namespace:plyr>
aaply(matrix(1:9, ncol=3), 2, mean)
# 1 2 3
# 2 5 8
おそらく、私がする必要があるのはこれだけです(foo
実行できるようにする代わりに、実際の名前を付けます)?
loadNamespace('zoo')
rollmean <- zoo::rollmean
rollmean.default <- zoo::rollmean.default
そうすることの落とし穴について何かコメントはありますか? 私はloadNamespace()
前に使用したことがありません。