1

base指定された正式な引数の署名を持つすべての関数 (現在の作業環境で使用できるため、読み込まれたパッケージに加えて)を見つけるにはどうすればよいですか?

これは、この質問に答えるために使用する例を見つけようとしていたために思いつきました: function(x) が機能する場合、なぜ function() が必要なのですか?

4

1 に答える 1

1

必要な部品:

  • すべての関数の文字ベクトル:apropos("^",mode="function")
  • 関数には引数がありませんか?length(formals(x))==0
  • 文字ベクトルによって名前が付けられたオブジェクトを取得しますlapply( x, get )

aproposについては @RichieCotton に、については @hadley に感謝しis.primitiveます。

allFxnNames <- apropos("^",mode="function")
emptyFormals <- function(x) length(formals(x))==0 && !is.primitive(x)
allFxns <- lapply( allFxnNames, get )
whichEmpty <- sapply(allFxns, emptyFormals)
allFxnNames[whichEmpty]

これは、正式な引数を持たないすべての非プリミティブ関数を見つけます。

"alarm", "closeAllConnections", "colors", "colours", "contributors", "Cstack_info", "date", "defaultPrototype", "default.stringsAsFactors", "dev.cur", "dev.list", "dev_packages"、"element_blank"、"empty.dump"、".First"、".First.sys"、"flush.console"、"frame"、"getAllConnections"、"getCConverterDescriptions"、"getCConverterStatus"、"geterrmessage "、"get_ll_TOL"、"get_ll_warn"、"getLoadedDLLs"、"getNumCConverters"、"get_path"、"get_Polypath"、"get_PolypathRule"、"get_ReplCRS_warn"、"getRversion"、"getTaskCallbackNames"、"getwd"、"graphics.off"、"has_devel"、"iconvlist"、"is_false"、"is.R"、"is_true"、"Java"、"l10n_info"、"last_plot"、"licence" 、「license」、「loadedNamespaces」、「loaded_pa​​ckages」、「loadingNamespaceInfo」、「memory.profile」、「newEmptyObject」、「.NotYetImplemented」、「.OptRequireMethods」、「plot.new」、「progress_none」、「rc. status"、"Rdoc"、"recordPlot"、"recover"、".rs.activateGraphicsDevice"、".rs.createUUID"、".rs.defaultLibPathIsWriteable"、".rs.defaultUserLibraryPath"、".rs.disableQuartz"、 ".rs。helprIsActive"、".rs.iconvcommon"、".rs.initGraphicsDevice"、".rs.knitrChunkOptions"、".rs.listJsonRpcHandlers"、".rs.packages.initialize"、".rs.rpc.check_for_package_updates"、" .rs.rpc.get_cran_mirrors"、".rs.rpc.get_package_install_context"、".rs.rpc.iconvlist"、".rs.rpc.init_default_user_library"、".rs.rpc.list_objects"、".rs.rpc. list_packages"、".rs.rpc.remove_all_objects"、".rs.setHelprLoadHook"、".rs.sweaveChunkOptions"、"RStudioGD"、"RStudio.version"、".rs.uniqueLibraryPaths"、".rs.updatePackageEvents"、 ".rs.writeableLibraryPaths"、"Rtangle"、"R.Version"、"RweaveLatex"、"検索"、"searchpaths"、"sessionData"、".standard_regexps"、"stderr"、"stdin"、"stdout"、"sys.calls"、"Sys.Date"、"sys.frames"、"Sys.getpid "、"Sys.info"、"Sys.localeconv"、"sys.nframe"、"sys.on.exit"、"sys.parents"、"sys.status"、"System"、"Sys.time"、 「Sys.timezone」、「tempdir」、「test」、「theme_get」、「waiver」sys.nframe"、"sys.on.exit"、"sys.parents"、"sys.status"、"System"、"Sys.time"、"Sys.timezone"、"tempdir"、"test"、" theme_get", "権利放棄"sys.nframe"、"sys.on.exit"、"sys.parents"、"sys.status"、"System"、"Sys.time"、"Sys.timezone"、"tempdir"、"test"、" theme_get", "権利放棄"

于 2013-02-14T21:27:00.863 に答える