在下面的代码中,LETTERS和字母是全局的,或者在全局搜索路径中,可以通过另一个包来访问(同样的事情!)
> LETTERS [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" [20] "T" "U" "V" "W" "X" "Y" "Z" > letters [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" [20] "t" "u" "v" "w" "x" "y" "z" > ls() character(0) > a <- "1 2 3" > ls() [1] "a" > rm(a) > ls() character(0) >
答案 0 :(得分:11)
出于同样的原因,它没有列出所有附加包中的所有导出函数(来自?ls
):
默认情况下,使用“ls”或“objects”调用的环境。
指定包含LETTERS
的环境,ls
将打印其名称。
# LETTERS is in there somewhere...
sapply(search(),ls)
答案 1 :(得分:7)
如果您阅读?LETTERS
,您会注意到这些是常量而不是数据对象。该页面还表明这些常量位于base
命名空间中。要列出它们,我们必须告诉ls()
查看该命名空间:
> ls(name = "package:base", pattern = "LETTERS")
[1] "LETTERS"
> ls(name = "package:base", pattern = "letters")
[1] "letters"
答案 2 :(得分:6)
apropos("letters",where=TRUE)
9 9
"letters" "LETTERS"
表示它们位于搜索列表中的第9位,即
search()
[1] ".GlobalEnv" "package:stats" "package:graphics"
[4] "package:grDevices" "package:utils" "package:datasets"
[7] "package:methods" "Autoloads" "package:base"
base
包。
答案 3 :(得分:6)
如果您想查看特定模式的对象并考虑到正则表达式搜索模式,可以使用apropos
进行探索。我有点紧张我会发现多少,所以我首先检查了这个努力的长度,只有30个。这是我工作区中的所有角色向量。请注意,“字母”和“字母”都会显示出来。
apropos(what="^", mode="character")
[1] ".Depends" ".Depends" ".Depends" ".Depends"
[5] ".Depends" ".Depends" ".Depends" ".Depends"
[9] ".Depends" ".Depends" ".Depends" ".Depends"
[13] ".Device" ".Firstlib_as_onLoad" ".knownS3Generics" ".Library"
[17] ".Library.site" ".S3PrimitiveGenerics" "blues9" "letters"
[21] "LETTERS" "month.abb" "month.name" "p.adjust.methods"
[25] "R.version.string" "sas.get.macro" "state.abb" "state.name"
[29] "tm"
如果您使用新的会话执行此操作,则不会获得尽可能多的“.Depends”。许多其他内置插件确实出现在这里,但“pi”缺失,因为它不是字符模式。如果你在我的机器上寻找“pi”,它的位置是25,这在你使用search()之前没有意义:
> search()[as.numeric(names(apropos(what="^pi", mode="numeric",where=1)))]
[1] "package:base"
# Removing the numeric restriction
> search()[as.numeric(names(apropos(what="^pi",where=1)))]
[1] "package:base" "package:utils" "package:lubridate" "package:grDevices" "package:graphics"
[6] "package:graphics" "package:MASS" "package:MASS" "package:MASS" "package:base"
因此所有这些包都有一些以“pi”开头的对象(主要是函数)。数字位置将随着加载的包数而变化,因为最近加载的包数较少会使“base”的搜索位置更高。
答案 4 :(得分:3)
因为它们是内置的数据对象。对正常变量进行正常分配,您将看到它:
R> myLETTERS <- LETTERS
R> ls()
[1] "myLETTERS"
R>
运行
R> data()
显示所有可用的数据集。有关详细信息,请参阅help(data)
,例如,如何在特定环境中查找数据而不是全局环境中的数据。