r语言 列出所有变量

你希望知道目前工作空间中存在哪些已定义的变量和函数。

解决方案

使用ls函数,或者使用ls.str函数了解每个变量更详细的信息。

讨论

ls函数可以显示当前工作空间中所有对象的名称:
> x <- 10
> y <- 50
> z <- c("three", "blind", "mice")
> f <- function(n,p) sqrt(p*(1-p)/n)
> ls()
[1] "f" "x" "y" "z"

注意,ls函数输出的结果是一个字符串向量,其中向量的每个元素代表一个变量名。当工作空间中没有已定义的变量时,函数ls会返回一个空向量,它会产生如下令人迷惑的结果:
> ls()
character(0)

事实上,R软件采用这样的方式向用户说明,ls函数返回一个长度为0的字符串向量;即工作空间中不含有任何已定义变量。

如果你除了变量名称以外还想对变量有更多的了解,那么你可以使用ls.str函数,该函数会返回变量的一些其他信息:
> ls.str()
f : function (n, p) 
x :  num 10
y :  num 50
z :  chr [1:3] "three" "blind" "mice"

ls.str函数之所以写为ls.str,原因在于其功能既显示了所有变量的名称,又对所有变量使用了str函数,方法12.15对此进行了详细的说明。

ls函数不会显示以点(.)开头的变量名,以点开头的变量一般作为隐藏变量不为用户所知(这一输出规定来源于UNIX系统)。在R软件中,可以通过将ls.str函数中的all.names参数设定为TRUE,强制列出所有变量:
> .hidvar <- 10
> ls()
[1] "f" "x" "y" "z"
> ls(all.names=TRUE)
[1] ".hidvar" "f"       "x"       "y"       "z"

另请参阅

方法2.4介绍了如何删除变量,方法12.15介绍了如何检查某一变量。

posted @ 2017-03-28 11:09  holy_black_cat  阅读(13687)  评论(0编辑  收藏  举报