我无法找出如何列表和工作区打印的所有对象。 我希望看到所有这些,明白这是怎么回事。 例如, ls()
为您提供了30个对象。 怎么样,除了个别打字他们,是可以显示他们。 看起来很琐碎,该解决方案可能会相当尴尬。 我来最接近的是ls.str()
和遍历对象的想法。
编辑 : 这是不是为数据帧。 我有一个工作空间充满的功能,而没有数据,并想了解哪些参考其等
我无法找出如何列表和工作区打印的所有对象。 我希望看到所有这些,明白这是怎么回事。 例如, ls()
为您提供了30个对象。 怎么样,除了个别打字他们,是可以显示他们。 看起来很琐碎,该解决方案可能会相当尴尬。 我来最接近的是ls.str()
和遍历对象的想法。
编辑 : 这是不是为数据帧。 我有一个工作空间充满的功能,而没有数据,并想了解哪些参考其等
你的意思是在意义上的“显示”“在每个对象ls()
我想看看我会看到,如果我输进了提示”? 如果你有一些基质那1000x10000 - 你仍然要打印吗? 我个人很喜欢ls.str()
-我认为这一切给人一个很好的简要概述,并处理我刚才提到的很好的情况下。
但是,如果你想基本上是“显示”在提示符下键入每个感的每一个对象,我建议一个循环:
for ( obj in ls() ) { print(get(obj)) }
由于ls()
返回变量名的特征向量,我需要使用get(obj)
它获取其名称是在变量obj
。
你不妨做以打印变量名太,例如这个变化
for ( obj in ls() ) { cat('---',obj,'---\n'); print(get(obj)) }
举个例子:
> a <- 1
> b <- LETTERS[1:10]
> c <- data.frame(a=LETTERS[1:10],b=runif(10))
> for ( obj in ls() ) { cat('---',obj,'---\n'); print(get(obj)) }
--- a ---
[1] 1
--- b ---
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J"
--- c ---
a b
1 A 0.1087306
2 B 0.9577797
3 C 0.8995034
4 D 0.1434574
5 E 0.3548047
6 F 0.1950219
7 G 0.1453959
8 H 0.4071727
9 I 0.3324218
10 J 0.4342141
这确实有一个缺点,但-你叫下一次ls()
现在有一个obj
在那里。 我敢肯定有一些解决办法,但。
总之,我觉得我还是比较喜欢ls.str()
的方式,处理大对象(但我有很多的巨大的(百万元)矩阵工作,所以这是我的偏好)。
我发现,使用RStudio让我对环境和每个直接交互的所有对象的视图。 我相信,一个好的IDE将允许排序探索,你的问题似乎需要的。 这尤其是给你的大量对象的视图是有用的。
相信我:你真的不希望打印的所有对象的所有内容。 试想一下,打印出matrix(1:1e5,100,1000)
:-(有一些有用的布线工具等。 summary
, table
和str
一般告诉你足够的关于数据对象的让你知道它是什么,你想用它做的事。如果你有更多的具体问题,例如,“我的哪个dataframes有NA值?”,你可以写命令或微型功能做了展望。
我喜欢的名字写了一些对自己lstype(objtype='closure')
其中列出了指定类型的所有对象。
如果你只是想使用变量的名称:
ls()
如果你想打印变量与内容一起,以及然后使用命令:
mget(ls())
这应该做你所需要的。
对于新开的工作空间与一些矩阵,向量和数据帧它很适合我。
,如果你有在工作区中的一个或多个大对象(如向量,矩阵,和/或列表)下面的代码位应该给您紧凑输出。
for ( obj in ls() ) {
cat('---',obj,'---\n');
if ( class(get(obj)) == 'matrix' ){
print( get(obj)[1:min(ncol(get(obj)),10),1:min(ncol(get(obj)),10)] )
}else if ( class(get(obj)) == 'numeric' | class(get(obj)) == 'integer' ){
print( get(obj)[1:min(length(get(obj)),10)] )
}else if( class(get(obj)) == 'list'){
for (i in 1:length(get(obj))){
if ( class(get(obj)) == 'matrix' ){
print( get(obj)[[i]][1:min(ncol(get(obj)[[i]]),10),1:min(ncol(get(obj)[[i]]),10)] )
}else if ( class(get(obj)[[i]]) == 'numeric' | class(get(obj)[[i]]) == 'integer' ){
print( get(obj)[[i]][1:min(length(get(obj)[[i]]),10)] )
}else{
print( get(obj)[[i]] )
}
}
}else{
print( get(obj) )
}
}